Android: 如何在ScrollView中嵌套GridView

来源:互联网 发布:excel选择重复数据 编辑:程序博客网 时间:2024/05/23 21:20

在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。

具体的方法是自定义GridView组件,继承自GridView。重载onMeasure方法

  1. public class MyGridView extends GridView {
    1. //该自定义控件只是重写了GridView的onMeasure方法,使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理,不再赘述。  
  2.         public MyGridView(Context context, AttributeSet attrs) { 
  3.             super(context, attrs); 
  4.         } 
  5.         public MyGridView(Context context) { 
  6.             super(context); 
  7.         } 
  8.         public MyGridView(Context context, AttributeSet attrs, int defStyle) { 
  9.             super(context, attrs, defStyle); 
  10.         }     
  11.         @Override 
  12.         public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {      
  13.             int expandSpec = MeasureSpec.makeMeasureSpec( 
  14.                     Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 
  15.             super.onMeasure(widthMeasureSpec, expandSpec); 
  16.         } 
  17.     }

    其中onMeasure函数决定了组件显示的高度与宽度;

    makeMeasureSpec函数中第一个函数决定布局空间的大小,第二个参数是布局模式

    MeasureSpec.AT_MOST的意思就是子控件需要多大的控件就扩展到多大的空间

     之后在ScrollView中添加这个组件就OK了,同样的道理,ListView也适用。

0 0
原创粉丝点击