I would like to create a linear layout which would behave similarly to ImageButton.
<LinearLayout
android:id="@+id/container"
style="?WidgetHomeIconContainer">
<ImageView
android:id="@+id/icon"
style="?WidgetHomeIcon" />
<TextView
android:id="@+id/title"
style="?WidgetHomeLabel"
android:text="@string/title"
android:textAppearance="?attr/TextHomeLabel" />
</LinearLayout>
In styles of ImageView, TextView and LinearLayout, I set a selectors for all states.
Now:
- when I click on ImageView (I tried it also with ImageButton) – it behaves correctly and the image is changed according the selector xml.
- when I click on LinearLayout – the linear layout is clicked, but the the ImageView and TextView don’t change it’s drawable/appearance
So I would like to do the following. When I click on parent LinearLayout, I need to change all it’s childs to pressed state.
I tried to add following code to LinearLayout onClickListener to propagate the click:
@Override
public void onClick(View v)
{
LinearLayout l = (LinearLayout) v;
for(int i = 0; i < l.getChildCount(); i++)
{
l.getChildAt(i).setClickable(true);
l.getChildAt(i).performClick();
}
}
But it still reamins the same. Thank you very much for any help.
Put
in your ImageView and TextView..then the views get its drawable state (focused, pressed, etc.) from its direct parent rather than from itself.