2

I uses its selection for the list

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/arrow" android:orientation="horizontal" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_weight="1" android:gravity="center_vertical" android:orientation="vertical" > <TextView android:id="@+id/tvDescr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" > </TextView> </LinearLayout> <ImageView android:id="@+id/ivImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:maxHeight="20dp" android:minHeight="20dp" > </ImageView> </LinearLayout> 

and selector arrow.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item><shape> <gradient android:angle="90.0" android:endColor="#6495ED" android:startColor="#0000FF" android:type="linear" /> <corners android:radius="5.0dp" /> </shape></item> <item android:state_focused="true"><shape> <gradient android:angle="90.0" android:endColor="#BA55D3" android:startColor="#800080" android:type="linear" /> <corners android:radius="5.0dp" /> </shape></item> <item android:state_pressed="true"><shape> <gradient android:angle="90.0" android:endColor="#BA55D3" android:startColor="#800080" android:type="linear" /> <corners android:radius="5.0dp" /> </shape></item> </selector> 

the result is

enter image description here

- does not work but if I remove (sources below) it will work

<item><shape> <gradient android:angle="90.0" android:endColor="#6495ED" android:startColor="#0000FF" android:type="linear" /> <corners android:radius="5.0dp" /> </shape></item> 

enter image description here

but it does not give me the desired result, because after you click on the "list-button" style has to change - but this does not happen

I want to make:

1)Style before pressing as in the picture 1

2)After I press the button, the button style has to change as the 2 picture

3)remain that way until I click on another button enter image description here

2 Answers 2

1

a selector is a 'state-list-drawable', ie it 'selects' <items> depending upon the state of the view it is applied to.

A StateListDrawable is a drawable object defined in XML that uses a several different images to represent the same graphic, depending on the state of the object. For example, a Button widget can exist in one of several different states (pressed, focused, or niether) and, using a state list drawable, you can provide a different background image for each state.

Here is the syntax, as in the docs :

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize=["true" | "false"] android:dither=["true" | "false"] android:variablePadding=["true" | "false"] > <item android:drawable="@[package:]drawable/drawable_resource" android:state_pressed=["true" | "false"] android:state_focused=["true" | "false"] android:state_hovered=["true" | "false"] android:state_selected=["true" | "false"] android:state_checkable=["true" | "false"] android:state_checked=["true" | "false"] android:state_enabled=["true" | "false"] android:state_activated=["true" | "false"] android:state_window_focused=["true" | "false"] /> </selector> 

notice the attributes you can set in the the <item>.

here is an example of a typical selector..

<selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/list_element_focused" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_element_focused_pressed" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_element_pressed" /> <item android:drawable="@drawable/list_element_unfocused" /> </selector> 
Sign up to request clarification or add additional context in comments.

1 Comment

Yes, I am feeling it is workable, you can tell - on item 3) "remain that way until I click on another button"
1

Please apply your selector in your listview instead of LinearLayout.

1 Comment

My listview is ListFragment he can add a selector?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.