自定義GridView

奮鬥年輕人發表於2016-11-21
/**
 * 重寫gridView 讓行數自動顯示完,自適應高度, listView 可巢狀
 */
public class NoScrollGridView extends GridView {
    public NoScrollGridView(Context context) {
        super(context);
    }
    public NoScrollGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public NoScrollGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

佈局:

<com.gxtag.teamwork.components.NoScrollGridView
       android:id="@+id/img_gif_grid_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:columnWidth="60dp"
       android:horizontalSpacing="2dp"
       android:verticalSpacing="2dp"
       android:gravity="center"
       android:numColumns="auto_fit"
       android:stretchMode="columnWidth"
       />
如果當我們在需要巢狀的時候,通常不能顯示自適應的高度,所以這時候我們就得自定義了,通常GridView能用,這也能稍微改成ListView也是可以的。

相關文章