21
//
c.getDeclaredField 获取私有属性。
23
//
“mView”是Tab的私有属性名称,类型是 TabView ,TabLayout私有内部类。
25
Field field = c.getDeclaredField("mView"
);
27
if
(field ==
null
) {
29
continue
;
31
}
33
field.setAccessible(
true
);
35
final
View view =
(View) field.get(tab);
37
if
(view ==
null
) {
39
continue
;
41
}
43
view.setTag(i);
45
view.setOnClickListener(newView.OnClickListener() {
47
@Override
49
public
void
onClick(View v) {
51
//
这里就可以根据业务需求处理事件了。
53
int
position = (
int
)view.getTag();
55
mViewPager.setCurrentItem(position,
false
);
57
}
59
});
61
}
catch
(NoSuchFieldException e) {
63
e.printStackTrace();
65
}
catch
(IllegalAccessException e) {
67
e.printStackTrace();
69
}