单击子项时,我需要更改可扩展列表视图中子视图的背景。
子行布局类似于:
<RelativeLayout> //Selector is placed for this layout
....
<RelativeLayout>
....
<RelativeLayout>
....
<TextView>
....
....
选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable= "@drawable/greyish"/>
</selector>
现在,当我单击 TextView 时,我想更改整行的背景(最上面的相对布局包含子布局中的每个视图)。我如何触发顶级相对布局的选择器。
另外,当 OnChildClick() 收到回调时,行的背景会发生变化(因为选择器放置在顶级布局中)。
我的尝试是:
在 TextView onclick 方法中:
((RelativeLayout)(nameView.getParent().getParent().getParent())).setPressed(true);
但这不会导致行布局更改背景颜色。
Issue:
最终你想从它的childView触发parentView的选择器。
Solution
在您的父布局中,添加以下行:
android:addStatesFromChildren="true"
如果你的java代码中有parentView的引用,那么你可以通过使用以下方法来完成任务:
parentView.setAddStatesFromChildren(true);
其中,parentView 是您的父布局,即:RelativeLayout
Note:
确保您的子视图不重复父视图的状态。
IE。:android:duplicateParentState
or childView.setDuplicateParentState(true)
我希望它会有所帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)