zoukankan      html  css  js  c++  java
  • ScrollView嵌套GridView和ListView的问题

    今天遇到了这样的界面 一看就是用ScrollView嵌套GridView最好处理了,也可以用ScrollView那样就麻烦了,我知道ScrollView嵌套GridView或ListView会有问题

    所以从网上差了一下资料,其实很简单就是重新GridView或ListView的onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法 附上代码:

     1 public class MyGridView extends GridView { 
     2     public MyGridView(Context context, AttributeSet attrs) { 
     3         super(context, attrs); 
     4     } 
     5 
     6     public MyGridView(Context context) { 
     7         super(context); 
     8     } 
     9 
    10     public MyGridView(Context context, AttributeSet attrs, int defStyle) { 
    11         super(context, attrs, defStyle); 
    12     } 
    13 
    14     @Override 
    15     public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    16 
    17         int expandSpec = MeasureSpec.makeMeasureSpec( 
    18                 Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 
    19         super.onMeasure(widthMeasureSpec, expandSpec); 
    20     } 
    21 } 

    这样就可以解决滑动冲突的问题了,因为重写的这个方法就是把GridView的滑动去掉了。但是你会发现这个问题解决了下一个问题就来了,他会默认GridView显示在最上面,

    需要在Activity的 onWindowFocusChanged(boolean hasFocus) 添加 scrollview.scrollTo(0, 0); 至于为什么不添加到onCreate和onStart中你就需要自己去了解一下

    Activity的每个生命周期方法了。

    1 public void onWindowFocusChanged(boolean hasFocus)
    2     {
    3         scrollview.scrollTo(0, 0);
    4         super.onWindowFocusChanged(hasFocus);
    5     }

     从网上搜上的解决方案:

    1 scrollView.post(new Runnable()
    2         {
    3             @Override
    4             public void run()
    5             {
    6                 scrollView.fullScroll(ScrollView.FOCUS_UP);
    7             }
    8         });
  • 相关阅读:
    Flask从入门到入土
    flask请求上下文源码分析
    python事件调度库sched
    go中简单使用kafka
    python下使用ElasticSearch
    numpy+pandas+matplotlib+tushare股票分析
    functools模块中partial的使用
    乐观锁与悲观锁
    mysql的服务器构成
    redis事件监听及在订单系统中的使用
  • 原文地址:https://www.cnblogs.com/androidxiaoyang/p/2856551.html
Copyright © 2011-2022 走看看