When I am clicking on relative layout, the background and stroke color is not changing. I mentioned all keyword i.e. android:state_focused="true"
, android:state_pressed="true"
, android:state_selected="true"
, but nothing happened. What is wrong in my code. Kindly help.
Relative Layout:
<RelativeLayout
android:id="@+id/plan2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:background="@drawable/shape_rectangle_plan"
android:padding="15dp"
android:focusable="true">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:fontFamily="@font/roboto_medium"
android:text="₹5000"
android:textColor="#000000"
android:textSize="20sp" />
</RelativeLayout>
shape_rectangle_plan - XML
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape>
<size android:height="1dp" />
<solid android:color="#12FDB559" />
<stroke android:width="0.8dp" android:color="@color/color2" />
</shape>
</item>
<item>
<shape>
<size android:height="1dp" />
<solid android:color="#12FFFFFF" />
</shape>
</item>
</selector>
MainActivity:
relative_layout.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View view) {
relative_layout.setSelected(true);
}
});
selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true">
<shape>
<size android:height="1dp" />
<solid android:color="#12FDB559" />
<stroke android:width="0.8dp" android:color="@color/color2" />
</shape>
</item>
<item
android:state_selected="false">
<shape>
<size android:height="1dp" />
<solid android:color="#12FFFFFF" />
</shape>
</item>
</selector>
In your class:
relative_layout.setOnClickListener {
relative_layout.setSelected(true)
}