阅读945 返回首页    go 阿里云 go 技术社区[云栖]


ScrollView嵌套GridView、ListView的解决办法

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

解决方案:
自定义GridView或ListView,去掉其滚动条。一下为GridView的例子。
复写GridView:

import android.content.Context; 
 import android.util.AttributeSet; 
 import android.widget.GridView; 
  
 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); 
     } 
  
 } 
 package com.yang.widget;
 
import android.content.Context;
 import android.util.AttributeSet;
 import android.widget.GridView;
 
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:
[html] <com.yang.widget.MyGridView
android:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="6dp" />
<com.yang.widget.MyGridView
android:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="6dp" />

最后更新:2017-04-02 17:28:41

  上一篇:go android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
  下一篇:go Android中 ScrollView(ListView)中嵌套ListView时显示不全的简便解决方案