Gridview高度被裁剪我试图在一个网格视图中显示8个项目。可悲的是,网格视图的高度总是太小,所以它只显示第一行,以及第二行的一小部分。设置android:layout_height="300dp"让它发挥作用。包裹content和fill_parent显然不是。我的网格视图:<GridView
android:id="@+id/myId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="2dp"
android:isScrollContainer="false"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />我的物品资源:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:minHeight="?android:attr/listPreferredItemHeight" >
<ImageView
android:id="@+id/appItemIcon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_info"
android:scaleType="center" />
<TextView
android:id="@+id/appItemText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My long application name"
android:gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceSmall" /></LinearLayout>这个问题似乎与缺乏垂直空间无关。我能做什么?
3 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
private void resizeGridView(GridView gridView, int items, int columns) { ViewGroup.LayoutParams params = gridView.getLayoutParams(); int oneRowHeight = gridView.getHeight(); int rows = (int) (items / columns); params.height = oneRowHeight * rows; gridView.setLayoutParams(params);}
gridView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (!gridViewResized) { gridViewResized = true; resizeGridView(gridView, numItems, numColumns); } } });
- 3 回答
- 0 关注
- 463 浏览
添加回答
举报
0/150
提交
取消