android TabLayout添加点击事件
16lz
2021-01-25
很多情况都会遇到scrollView里面嵌套tabLayout+viewPager,因为tabLayout上面有很多东西,所以处于屏幕下方,所以可能会要求点击tabLayout的时候tabLayout和viewPager置顶,以下就是代码实现。
for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); if (tab == null) return; //这里使用到反射,拿到Tab对象后获取Class Class c = tab.getClass(); try { //获取tab的view属性 name可能会不一样 可以进源码看看 Field field = c.getDeclaredField("view"); //反射的对象在使用时取消Java语言访问检查 field.setAccessible(true); //获取view final View view = (View) field.get(tab); if (view == null) return; view.setTag(i); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //业务逻辑 scrollView.setScrollY(scrollTop); } }); } catch (Exception e) { e.printStackTrace(); } }
更多相关文章
- setBackgroundDrawable和setBackgroundResource的区别
- Android性能测试之内存泄露以及GC机制浅析(三)
- Android源码中的单例模式
- Android(安卓)之 SharedPreferences
- android的日期格式化 android.text.format.DateFormat类
- SQLite抛出错误“未关闭游标及数据库对象”特殊原因一例
- 处理运行时更改
- 【Android(安卓)初学】1、Activity初步
- Android(安卓)关于微信分享图片过大失败的解决方案