Why do ListView items not grow to wrap their content?
I managed to fix this, but I don't understand why.
As I mentioned, I had set the layout_height
of the list item layout to wrap_content
(since fill_parent
is meaningless here, considering that a ListView is indefinitely tall).
However, I had set the layout_height
of all views inside that layout to fill_parent
. The problem disappeared when setting them to wrap_content
instead.
This raises two other questions:
1) What are the semantics of a view asking to fill_parent
, when the parent wraps_content
? Which size request takes precedence?
2) How would I ever make a view fill a list item if fill_parent
apparently doesn't work?
Thanks for your input guys.
listview and recyclerview doesnot wrap content with count
This is because of your linearlayout with vertical
orientation its keeping space for the lower views
like radioGroups
.Set height of listview dynamically use
public static void setListViewHeightBasedOnChildren(final ListView listView) {
listView.post(new Runnable() {
@Override
public void run() {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
int listWidth = listView.getMeasuredWidth();
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(
View.MeasureSpec.makeMeasureSpec(listWidth, View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
totalHeight += listItem.getMeasuredHeight();
Log.d("listItemHeight " + listItem.getMeasuredHeight(), "********");
}
Log.d("totalHeight " + totalHeight, "********");
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = (totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)));
listView.setLayoutParams(params);
listView.requestLayout();
}
});
}
Android List wrap content
According to the Android developers as seen in this Google I/O 2010 video , the ListView's height cannot be set to wrap_content. And when it is , the first three child elements are considered for the height. The others are simply not included.
Try setting the ListView's height at runtime. Or even better set it to FILL_PARENT.
ListView not getting space to show content on smaller screens
From what I read about that issue, you should specify the Views on top as header of the list, and the'll scroll properly.
Afaik this only works if the list is non-empty, as the empty view replaces the whole list including headers.
`ListView` content being added at bottom instead of top
add this attrubut to your list view android:stackFromBottom="false"
ListView not displaying items correctly
There is a 'View' property to a ListView that can be one of five different settings - make sure that is set to the 'Details' option. (For more information on the different options click here).
You will also need an ImageList if you don't have one already - add images to it and then add it as the SmallImageList property of the ListView to be able to assign items images.
The first column will be the text for your item. For the remaining columns you will need sub-items for each item - in the order that you want them displayed.
In order to show sub items you will need to ensure that there are enough columns in the columns collection to show all of them - one for the title and image of each item and then one each for the sub-items.
Sorry if you knew some of this already, just trying to cover any possible issues you may have. Hope this helps.
Listview data model updated but items not displaying
I found the problem. I had several CardView objects inside a LinearLayout, which itself was inside a ScrollView. As soon as I removed the ScrollView, the List inside the Card displayed properly. This has unfortunately created another problem in that I can no longer scroll the page to see later cards, which I have not yet found a solution for, but that is a different topic.
Related Topics
How to Develop Android App Completely Using Python
Call an Activity Method from a Broadcastreceiver Class
Get Android .Apk File Versionname or Versioncode Without Installing APK
How to Show a Preview of a Recyclerview's Contents in The Android Studio Editor
How to Set The Font Style to Bold, Italic and Underlined in an Android Textview
Cordova Cannot Add Android Failed with Exit Code Enoent
How to Read All The Coming Notifications in Android
How to Pin a Certificate with Square Okhttp
Data Sharing Between Fragments and Activity in Android
Obtain Root Access via Su on the Android Emulator
Failed to Resolve: Recyclerview-V7
How to Create a Looper Thread, Then Send It a Message Immediately
Listview: Textview with Linkmovementmethod Makes List Item Unclickable
Pcm -> Aac (Encoder) -> Pcm(Decoder) in Real-Time with Correct Optimization