很多情况都会遇到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();            }        }

 

更多相关文章

  1. setBackgroundDrawable和setBackgroundResource的区别
  2. Android性能测试之内存泄露以及GC机制浅析(三)
  3. Android源码中的单例模式
  4. Android(安卓)之 SharedPreferences
  5. android的日期格式化 android.text.format.DateFormat类
  6. SQLite抛出错误“未关闭游标及数据库对象”特殊原因一例
  7. 处理运行时更改
  8. 【Android(安卓)初学】1、Activity初步
  9. Android(安卓)关于微信分享图片过大失败的解决方案

随机推荐

  1. 我的Android进阶之旅------>Android常用
  2. android 中的Main调试方法
  3. 实现图片浏览,改变透明度的方法
  4. android中使用SAX和DOM以及Pull对xml文件
  5. EditText背景 光标 下划线颜色
  6. android:screenOrientation的取值含义
  7. android中pull解析xml和生成xml
  8. Android(安卓)开发(04)高级UI组件
  9. [置顶] Android(安卓)LockScreen
  10. Android(安卓)技术专题系列之二 -- telepho