ListView
项目没有获得包装内容高度,因为我只需要显示
我试图将动态高度设置为项目,但它不起作用
请提供其他解决方案。
它的项目中的字符串。我正在使用ArrayAdapter
,这是我用于对项目进行充气的TextView
代码。
谢谢
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="none"
android:gravity="center_vertical"
android:paddingBottom="@dimen/dp2"
android:paddingTop="@dimen/dp2"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/white" />
我正在尝试使用以下代码设置ListView的项目高度 -
for (int itemPos = 0; itemPos < numberOfItems; itemPos++) {
View item = arrayAdapter.getView(itemPos, null, listView);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
item.setLayoutParams(layoutParams);
item.measure(item.getMeasuredWidth(), item.getMeasuredHeight());
totalItemsHeight += item.getMeasuredHeight();
}
答案 0 :(得分:1)
把
android:layout_height="wrap_content"
TextView单元格布局上的。应根据内容以动态方式更改TextView高度。
删除这两行:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
item.setLayoutParams(layoutParams);
你有没有代码onCreate()或onStart()?因为如果它在创造它可能是getMeasuredHeigh()总是返回0。
答案 1 :(得分:0)
尝试更改如下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="none"
android:gravity="center_vertical"
android:paddingBottom="@dimen/dp2"
android:paddingTop="@dimen/dp2"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/white" />
答案 2 :(得分:0)
尝试提供一些硬编码值并检查它是否有效而不是包装内容或只是重建项目并使用wrap_content再次尝试