Gridview的高度被削减

Gridview的高度被削减,第1张

Gridview的高度被削减

经过(太多)研究,我偶然发现了尼尔·特拉夫特(Neil Traft)的出色回答。

适应他的工作GridView已经很容易了。

ExpandableHeightGridView.java:

package com.example;public class ExpandableHeightGridView extends GridView{    boolean expanded = false;    public ExpandableHeightGridView(Context context)    {        super(context);    }    public ExpandableHeightGridView(Context context, AttributeSet attrs)    {        super(context, attrs);    }    public ExpandableHeightGridView(Context context, AttributeSet attrs, int defStyle)    {        super(context, attrs, defStyle);    }    public boolean isExpanded()    {        return expanded;    }    @Override    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)    {        // HACK! TAKE THAT ANDROID!        if (isExpanded())        { // Calculate entire height by providing a very large height hint. // View.MEASURED_SIZE_MASK represents the largest height possible. int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,         MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight();        }        else        { super.onMeasure(widthMeasureSpec, heightMeasureSpec);        }    }    public void setExpanded(boolean expanded)    {        this.expanded = expanded;    }}

将其包含在您的布局中,如下所示:

<com.example.ExpandableHeightGridView    android:id="@+id/myId"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:gravity="center"    android:horizontalSpacing="2dp"    android:isScrollContainer="false"    android:numColumns="4"    android:stretchMode="columnWidth"    android:verticalSpacing="20dp" />

最后,您只需要让它扩展即可:

mAppsGrid = (ExpandableHeightGridView) findViewById(R.id.myId);mAppsGrid.setExpanded(true);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存