給這個圖標設置點擊事件,這個圖標是一個Imagivew類型,放在一個toolbar裏面,toolbar是一個viewgroup,直接得到這個view設置點擊就可以本來,但是坑爹的是這個Imagivew在viewgroup中是一個私有類型,而且坑爹的谷歌沒有給這個imagive設置get set方法。。。。。。
這樣的話就只可以用反射調用了。。。。。
函數如下圖。。。。。over
private void initListener() {
try {
Field field = toolbar.getClass().getDeclaredField("mLogoView");
field.setAccessible(true);
ImageView imageView = (ImageView) field.get(toolbar);
imageView.setTransitionName("SEIV");
imageView.setId(R.id.tool_bar_log);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Pair<View, String>[] pairs = new Pair[]{
Pair.create(mDrawerLayout.findViewById(R.id.tool_bar_log), "SEIV")};
ActivityOptionsCompat options = ActivityOptionsCompat
.makeSceneTransitionAnimation(AppLifeCircleUtil.activityStack.get(0), pairs);
ARouter.getInstance().build(ARouterPage.MYPAGE_ACTIVITY).withOptionsCompat(options)
.navigation(MainActivity.this);
}
});
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
ToastUtils.showLongToast("1");
e.printStackTrace();
}
}