Android开发随笔之ScrollView嵌套GridView[ 转]_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android开发随笔之ScrollView嵌套GridView[ 转]

Android开发随笔之ScrollView嵌套GridView[ 转]

 2013/11/14 12:50:03  潜心止水  博客园  我要评论(0)
  • 摘要:今天在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全,为了解决这个问题查了N多资料,某个谷歌的官方回复竟然是GridView不需要ScrollView,那个牛气冲天啊,可是爷偏偏用到了肿么办呢?!又继续查,神马重写控件重写类的,那代码一坨坨的有木有!!!最后,还是在某人一句很隐晦的提示下得到灵感最终实现。首先是布局<ScrollView>……<
  • 标签:android view 开发 Android开发 随笔

今天在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全,为了解决这个问题查了N多资料,某个谷歌的官方回复竟然是GridView不需要ScrollView,那个牛气冲天啊,可是爷偏偏用到了肿么办呢?!又继续查,神马重写控件重写类的,那代码一坨坨的有木有!!!最后,还是在某人一句很隐晦的提示下得到灵感最终实现。
        首先是布局
<ScrollView>
       ……
   <LinearLayout>

   </LinearLayout>
       ……
</ScrollView>
我们要做的就是自定义一个GridView控件并插入到中间的LinearLayout中
public class MyGridView extends GridView{
public MyGridView(Context context, AttributeSet attrs) {
  super(context, attrs);
}
public MyGridView(Context context) {
  super(context);
}
public MyGridView(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
}
@Override     
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
   
   int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
     MeasureSpec.AT_MOST);             
   super.onMeasure(widthMeasureSpec, expandSpec);

}
这个自定义控件只是重写了GridView的onMeasure方法,使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理,不再累述

发表评论
用户名: 匿名