Search code examples
androidandroid-recyclerviewandroid-xmlandroid-relativelayout

Selector background inside RecyclerView


I have recyclerView and i successfully adaptered my data.I have one problem.This is my selector.xml source

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/trains_vagon_selected_departure" android:state_pressed="true" />
<item android:drawable="@drawable/trains_vagon_selected_departure" android:state_focused="true"  />

<item android:drawable="@drawable/trains_vagon_selected_white"/>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#77b7e9"/>
<padding android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp"
    />

<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp"
    android:topLeftRadius="0dp" android:topRightRadius="0dp"/>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>



<padding android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp"
    />

<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp"
    android:topLeftRadius="0dp" android:topRightRadius="0dp"/>

I used this selector drawable file in my recyclerView item and it's working perfect.

   <RelativeLayout
        android:id="@+id/selected_layout"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:clickable="true"
        android:focusable="true"
        android:background="@drawable/recyclerview_selected_departure"
        android:focusableInTouchMode="true">

        <TextView
            android:id="@+id/vagon_class_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="16dp"
            android:text="II Class"
            android:textColor="#b3b3b3"
            android:textSize="12dp" />

    </RelativeLayout>

I have two problem. First.Is it a possible change selected item's Textview text color(only selected item)? and second question .When i run my app first element selected automatically.How i can wrote my code to disable first auto selector? thanks everyone


Solution

  • For changing the selected item's text color, use a color selector xml file. Example:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:color="#4c000000" android:state_pressed="false"/>
        <item android:color="#bcbcbc"/>
    
    </selector
    

    Please share the code for item selection logic to check the second question.

    When i run my app first element selected automatically.How i can wrote my code to disable first auto selector?