I am working on an app using ListView in the form of a chat app. I was wondering if it is possible to style individual items in a ListView by giving the items padding (left) and padding (right). Should I style the items programatically or are there other options?
As you haven't posted the code, I am providing the answer in text version.
You need to use custom layouts using custom adapters. There you will have two layouts, one where you add the ListView and another where you add the single item that you want to create. This single item layout should be inflated and populated in the ListView Adapter. In this single item layout you can set left padding and right padding.
Related
Can someone provide me with any insights on how to remove the default padding around a listview item? I have provided an image with arrows indicating what padding I am talking about.
You need to create custom a custom layout file for your list items. And a custom adapter. Then you can control all the appearance.
I have a standard list where the rows contain images and textviews.
I would like to have the ListView's default listSelector to show up at the highest Z-index. Currently, it shows the animation under/behind the images. I want it to show the listSelector animation on top of the images and TextView.
Is this possible without creating a dummy ImageView in the row itself?
As per freddieptf's comment, the solution is to set "drawSelectorOnTop" to true on the ListView.
http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:drawSelectorOnTop
My problem,
In my custom listview last element 'select' button overlap with cart icon.
My question,
How to add some empty space after end of custom listview?
you can set Linear layout for your listview. And you can use another linear layout for your footer(Cart icon).
when you setting up linear layouts, you can add layour weights ,so that you can arrange your listview and cart icon clearly.
if you want more clarifications inform me
I have three items in a ListView. The reason I have chosen the ListView is so I can use a Divider and a List Selector on these items.
However I do not need/want the scrolling aspect of the ListView. Ie. When I select/drag an item from the list, I dont want it to scroll..
Is it possible to disable this somehow? Or will I have to add the items using a LinearLayout and find another way of using a list divider and selector?
I'm not sure how well this will work for you, but you can disable overscroll (available in android-9 and above):
listView.setOverScrollMode(View.OVER_SCROLL_NEVER);
and then also hide the scroll bars:
listView.setVerticalScrollBarEnabled(false);
After this, if your list does not exceed the screen size then it shouldn't be able to scroll.
If you dont need to scroll listview, you can add the list item to a linear layout as well you can design it also through xml file.
And for put a DIVIDER to it just take a "View" widget.
Put it height 1 dip and width fill_parent. You can give color to this view through background color.
Try it. i have done it many times.
In ListView I can change the divider image using android:divider=image but I want to display different divider images for different items how can I do that ?
Why not have no divider images and make the divider part of the View for each item?
For example, at the top of the view you have a label and an icon and at the bottom you have your divider image.
AFAIK there is no means to have different dividers in different locations in a single list. Either follow Mr. Webb's recommendation (i.e., put the "dividers" in the list items), or keep a consistent divider, or perhaps subclass/reimplement ListView to provide the functionality you seek.