国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android 中 GridView嵌套在ScrollView里只有一行的解決方法

2019-12-12 05:07:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在做android項(xiàng)目中遇到一個(gè)bug,GridView嵌套在ScrollView里只有一行的問(wèn)題。下面小編在網(wǎng)上找到了解決方法,具體方法如下所示:

方法一:就是上面說(shuō)的通過(guò)計(jì)算出來(lái)ListView或者GridView中的子列高度和 進(jìn)行顯示:

public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); ((MarginLayoutParams)params).setMargins(15, 15, 15, 15); listView.setLayoutParams(params);}

方法二:重寫(xiě)GridView和ListView的onMeasure方法,直接給它一個(gè)足夠大的高度:

重寫(xiě)ListView:

public class MyListView extends ListView { public MyListView(Context context) { // TODO Auto-generated method stub super(context); } public MyListView(Context context, AttributeSet attrs) { // TODO Auto-generated method stub super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyle) { // TODO Auto-generated method stub super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }

重寫(xiě)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); } }

xml中的布局:

<com.xxx.MyGridView android:id="@+id/mygridview" 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" />

以上所述是小編給大家介紹的Android 中 GridView嵌套在ScrollView里只有一行的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 六安市| 永川市| 玛沁县| 大荔县| 南木林县| 林口县| 渑池县| 九龙城区| 梅河口市| 军事| 望江县| 百色市| 东平县| 桂东县| 石门县| 云南省| 马龙县| 漳州市| 和林格尔县| 江川县| 闸北区| 临潭县| 兴山县| 新兴县| 辽阳县| 旬邑县| 修水县| 康乐县| 明星| 灵武市| 六枝特区| 峡江县| 河西区| 逊克县| 襄樊市| 清涧县| 福安市| 南召县| 仲巴县| 海兴县| 罗源县|