`
bk_lin
  • 浏览: 318607 次
社区版块
存档分类
最新评论

ScrollView嵌套GridView、ListView的解决办法

 
阅读更多
问题:
在Android开发当中经常会用到了需要ScrollView嵌套GridView或者是ListView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView或ListView会显示不全。
解决方案:
自定义GridView或ListView,去掉其滚动条。一下为GridView的例子。
复写GridView:
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); 
    } 
 
} 
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:
 <com.yang.widget.MyGridView 
             android:id="@id/bolg_category_gridview" 
             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:id="@id/bolg_category_gridview"
                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" />
2
0
分享到:
评论
1 楼 ax003d 2013-04-03  
你好,我使用这种方法,在gridview里显示图片,当图片数量很多的时候,发现这个gridfview会一次性加载所有的图片,最后导致 outofmemory 错误。

相关推荐

Global site tag (gtag.js) - Google Analytics