将GridView内嵌在ScrollView中

来源:互联网 发布:索尼电视型号推荐知乎 编辑:程序博客网 时间:2024/05/17 06:27

最近做项目需要把一个GridView内嵌在ScrollView中,刚开始我直接嵌入进去

    <ScrollView        android:layout_width="match_parent"        android:layout_height="wrap_content">        <GridView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:numColumns="2"></GridView>    </ScrollView>

结果GridView只显示了一行(刚开始我以为是GridView的数据源或者适配器出了问题)

导致原因:ScrollView和GridView都带滚动条,引起冲突,导致GridView只能显示一行。(ListView内嵌进去一样会冲突)

解决办法:自定义GridView

public class CustomGridView extends GridView{    public CustomGridView(Context context) {        super(context);    }    public CustomGridView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public CustomGridView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    //这个是去掉滚动条    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);//注意super里的参数    }}
<com.yonglian.wdyapp.hudong.CustomGridView                android:id="@+id/hudong_remen_gridview"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:numColumns="2"></com.yonglian.wdyapp.hudong.CustomGridView>

得到理想的运行效果

0 0
原创粉丝点击