Android :: ListView - Style Of Rows With An Own Background And Selector
Apr 23, 2010How to do a listview which looks like this? I'm interesting in the style of rows with an own background and the selector working fine.

How to do a listview which looks like this? I'm interesting in the style of rows with an own background and the selector working fine.
Is it possible to apply a custom background to each Listview item via the list selector?
The default selector specifies @android:color/transparent for the state_focused="false" case, but changing this to some custom drawable doesn't affect items that aren't selected. Romain Guy seems to suggest in this answer that this is possible.
I'm currently achieving the same affect by using a custom background on each view and hiding it when the item is selected/focused/whatever so the selector is shown, but it'd be more elegant to have this all defined in one place.
For reference, this is the selector I'm using to try and get this working:
CODE:...............
And this is how I'm setting the selector:
CODE:.........................
I have an expandable list with a custom adapter. Everything works great but there are two problems.
First whenever a group or child has a custom background color set the orange selector does not show up. If I dont setup a color the selector draws nicely and also the fade away for context menus works.
Second, some of my text inside a list item is linkified. Whenever a link is present the selector does not draw again. It seems that the click event is handled by the internal link view instead of propagating to the list view.
I'm trying to use a color defined in a stlyle in a selector but it is causing a Resources$NotFoundException.
First I added a new attribute to attr.xml:
CODE:..........
Then I defined that attr value in styles.xml:
CODE:..........
Then I tried to use that attr in my selector definition:
CODE:................
Lastly, the activity uses the ThemeNoTitleBar style theme in the manifest.
I've also tried creating a color in colors.xml and having it use the new attr but that also fails.
I'm obviously missing something but am not sure what to do to fix it. My intent is to create multiple themes and have the selector use the color in the currently selected theme.
I'm having a bit of a problem with a custom button style. I have the button states (9-patch drawables) set up in a <selector> drawable. The style I'm going for is a button that looks like it gets pushed down, i.e., you can see the front edge of the button until you press it. It works fine for the button itself, but the contents of the Button (or ImageButton) don't move when pressed, even though I have the 9-patch areas set up to move the content area for the depressed button states. It seems like it's keeping the same 9-patch areas no matter which image it's showing.
Here's an animated GIF to help make the problem a little clearer, since I'm awful at explaining things: http://www.crappytools.net/button_problem.gif The button moves when pressed, but the icon inside stays still. I played with the Draw 9-Patch utility, and it shows that the content area in the depressed image should be shifting downwards like intended.
I would like to change text and back ground color of my Listview without building custom rows. Is this possible ?
View 1 Replies View RelatedHow to change the TabBackground in the different states (not the icon!) ?
my files:
CODE:....
Where should i call the xml file above?
I tried it in the TabWidget as src, but it doesn't work:
CODE:..............
So i tried to use a own theme:
CODE:..........
But i don't know, which resource i should use instead of "?"...
I have created a ListView and applied a selector to it as follows
CODE:..............
When focussed or pressed, the background of the ListView item comes as specified in the selector. But the default background is never applied, can you tell me what is wrong?
By the way, this is the customised row xml I've used:
CODE:...................
I'm attempting to change the background color of an Android TextView widget when the user touches it. I've created a selector for that purpose, which is stored in res/color/selector.xml and roughly looks like that:
CODE:................
The clickable attribute of the TextView is "true", in case that's of interest.
When I assign this selector to a TextView as android:background="@color/selector",
I'm getting the following exception at runtime: ERROR/AndroidRuntime(13130): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: <item> tag requires a 'drawable' attribute or child tag defining a drawable
When I change the attribute to drawable, it works, but the result is looking completely wrong because the IDs appear to be interpreted as image references instead of color references (as the "drawable" suggests).
What confuses me is that I can set a color reference, e.g. "@color/black", as the background attribute directly. This is working as expected. Using selectors doesn't work.
I can also use the selector as the textColor without problems.
What's the correct way to apply a background-color-selector to a TextView in Android?
I have 2 questions regarding a ListView in Android:
How can I get the color of the listview's focused row ? I tried to use the ListView.getSelector() method, which according to its documentation should give me what I'm looking for, but it's giving me a Drawable object which I don't know how to retrieve the color from (if possible...).
How can I set the color of the listview's focused row ? Here I tried to use the setSelector() method on the listview, passing it a ColorDrawable object, but the result of doing it is that the whole background of the list view is painted in that color... and this is not what I wanted of course...
I'm looking for suggestions on how to go about adding a ListView selector that is 'permanent'. By this, I mean a single row in the ListView is always highlighted; it should move up or down in reponse to any D-pad presses (i.e. like the default selector) but also remain set/highlighted if the user were to scroll the ListView in either direction (i.e. it's still highlighted even when it's off-screen).
I've looked at using the standard selector mechanism, but am unable to get the selector to remain in place if the ListView is touched (and thus scrolled), so it makes me think that this isn't the best option? Perhaps there's a <selector> "state_*" that I've ignored?
The other option would be to use the onItemSelected() callback, but at first look this appears more convoluted?
Any suggestions/recommendations/experiences gratefully received.
i want to implement listview with uses different xml layouts for rows depending on underlying item. A non optimal solution will be int getView method just to inflate every time a new view depending on the item from the adapter. Is there a better way to do this?
View 2 Replies View Relatedis it possible to let my ListView show 2 different rows? On the picture you can see at the top something like a "teaser", the other rows are normal ListView. The screenshot is from the iPod. With their framework it is possible to show 2 different row styles. I badly need this on Android... Otherwise I would use a tabel design. But adding rows dynamically would be such an overhead instead of using ListView SimpleAdapter addItem...
View 2 Replies View RelatedI have a listview with a custom item_row.xml. I've defined a selector in this way:
CODE:................
And then put into item_row.xml in this way:
CODE:...................
I want 2 things:
When i move with arrow keys, the item selected changed its background. It's works fine with the actual implementation of selector.
When i press a item, the item changed its background too, but it doesn't work with the actual selector.
I try to set also into the ListView android:listSelector="@drawable/list_selector" but it doesn't work neither.
I am trying to style my ListView with two 9-patch background images (16px * 9px), one dark image for default state and another green image for selected and pressed state.
It works except for just one problem that when I select or press one list item, it seems that the selected item overlap the next one a little bit as I can see some pixels of the green background image is on the top of next item.
Trying to get an Android ListView to do what I want.
I want to have a ListView in single choice mode with a custom row layout that has a different background color for selected, pressed and checked (i.e. the choice is shown by a color rather than a check mark - this is what I would normally call the "selection" but selection in android seems line I'm about to choose before I press it)
I thought of trying a background selector with the three states in it. It works fine for state_selected and state_pressed, but not state_checked. So I created a CheckableRelativeLayout that extends RelativeLayout and implements Checkable and used for the view of each row.
A simplified version is shown here:
CODE:.....
bkg_selector looks like
CODE:..............
The colors are defined elsewhere.
This still didn't work. So in the custom ListAdapter I tracked the "checked" row and tried (in getView) if( position == checkedPosition ) ret.getBackground().setState(CHECKED_STATE_SET);
And it STILL doesn't work. How can I get it to do what I want?
I have a ListView. When I click on a ListItem, I set the background of the ListItem (it's view) to another color:
CODE:........
Here is my adapter:
CODE:......
The problem is, if I select multiple rows, then multiple rows have a colored background. I only want the clicked item to have a colored background. So if I click on row 2, I want it to turn red, then if I click row 1, I want row 2 to go back to normal, and row 1 to turn red.
I want to make a listview that has different rows (layouts). I will load the data from a webservice and it can be 2 or more layouts i have to generate then. I am creating a social network app and want to show a stream of the users activity. So when he made a comment, make a new friend, this all has to come in the same list.. I load 1 XML file with multiple different child objects (comment, friend) so i can see which layout i have to use........
View 5 Replies View RelatedI saw the Android app "Mobisle Notes Free" implement a really cool ListView, where a row gets moved to the bottom if its checkbox is checked. It's not just a simple refresh, but an actual animation where you see the row travel to the bottom. Does anyone know how to implement this?
View 1 Replies View RelatedLook for examples where ListViews can show multiple view types.
View 6 Replies View RelatedI made my simple, custom rows and listviews. Right now, only clicking on the text of the row is valid selection area. I want the entire row, even the no-text area to be selectable. Where do I modify? Am I looking for focusing or selecting?...................
View 5 Replies View Relatedi am quite new to android and i was wondering how i could go about adding a listview with different images and text. What i am trying to achieve is a listview with four rows which have a different Icon? I don't know how to set that up using the xml layout provided. should i build this using different multiple linear layout or is there a better way to go about it?.. All the examples i have seen all seem to be using one particular Icon and no much detail of the xml layout.
View 1 Replies View RelatedI have 2 ways of displaying ListView data. I have a class for each type of row. I do not create the rows in an xml layout. (Each row is derived from View and does custom drawing). When I switch from 1 type of row to another how do I get the ListView to layout properly with the correct row heights, and refresh? Is View.forceLayout() on the right track?
View 1 Replies View RelatedI have 10 rows in my listview, and i want to provide different colors in each row.
View 1 Replies View RelatedI am currently trying to customize ImageButton to show different draweables as background of the Button while keeping the image set via the src attribute.
That's my custom_button.xml:
CODE:..............
I have a Cursor that returns rows I use with a SimpleCursorAdapter to populate a ListView. I would like to filter some of the rows so they don't get displayed in my ListView. I use the data from the rows elsewhere in my Activity so I don't want to change my SQL to filter them with a WHERE clause. What is the best way to keep a row from being displaying in my ListView? Ideally I would check a column in my row and then only add rows to the ListView that satisfy a condition.
View 2 Replies View RelatedI have a relative layout which looks like this:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/nameText"
android:layout_width="wrap_content"......................
I use this code in my getView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listrow, null);
}
Order o = items.get(position);
if (o != null) {
TextView tt = (TextView) v.findViewById(R.id.toptext);
ImageView thumb = (ImageView) v.findViewById(R.id.icon);
if(o.getOrderDrawable()!=null){
thumb.setImageDrawable(o.getOrderDrawable());
}
else{
tt.setText(o.getOrderTitle());
}
}
return v;}
The problem is when scrolling; sometimes the correct image shows, but sometimes when scrolling back/forward, the images shows randomly and that is not associated with the row. The images are downloaded from the web.
Is there a way for setting a number of maximum visible rows for a listview?
View 1 Replies View RelatedSo, basically I have a custom View that contains a ListView with a custom Adapter that has the ability to read in information from the network (dumbed down HTML) and display it on a row by row basis. All of this works, but I need the text that is read in to be parsed as HTML which contains links that can be tapped on and launched in browser. I managed to do this by:
text.setText(Html.fromHtml(textBuffer), TextView.BufferType.SPANNABLE);
text.setMovementMethod(LinkMovementMethod.getInstance());
Works great, any <a href=""></a> links in the text are displayed as links and can be tapped. This is a side effect of now making it so the rest of the rows in the ListView cannot be tapped (or tapped and held). Basically, all the rows are non-selectable now. Is there any way to achieve both of what I need?