閱讀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時顯示不全的簡便解決方案