以下内容来自:http://www.it1352.com/87746.html
另外解决办法参考http://blog.youkuaiyun.com/nuli1228588792/article/details/53488253
但是如果Listview数据较多不能采用该方法
Is there a way to have a ListView with the with equal to the longest row? Setting wrap_content for the ListView 's width has no effect. The ListView covers the whole screen horizontally.
This is the activity layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ListView android:id="@+id/listview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/country_picker_bg" />
and this is the row xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_marginBottom="@dimen/padding" android:padding="@dimen/padding" android:background="@drawable/white_round_rect" > <TextView android:id="@+id/title" style="@style/GreyTextView" android:layout_marginLeft="@dimen/padding"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/orange_arrow_selector"/> </LinearLayout>
Thank you, Gratzi
Is there a way to have a ListView with the with equal to the longest row?
No, in part because we have no way to know what the longest row is.
Let's say that you attach a ListAdapter to the ListView, where getCount() on the ListAdapter returns a value of 1,234,567. To determine the width of the longest row, we would have to create each row and examine its width. This would take hours, and the user will not be happy during those hours.
本文地址:IT屋 » wrap_content for a listview's width