gpt4 book ai didi

android - 单击子布局中的元素时更改可扩展列表 subview 的背景

转载 作者:行者123 更新时间:2023-11-29 01:49:40 30 4
gpt4 key购买 nike

我需要在单击 subview 时更改可扩展 ListView 中 subview 的背景。

子行布局是这样的:

<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 时,我想更改整行的背景(最顶部的相对布局包含在每个 View 中的子布局中)。如何触发顶级相对布局的选择器。

此外,当 OnChildClick() 收到回调时,行的背景会发生变化(因为选择器位于顶级布局中)。

我的尝试是:

在TextView的onlclick方法中:

   ((RelativeLayout)(nameView.getParent().getParent().getParent())).setPressed(true);

但这不会导致行布局改变背景颜色。

最佳答案

问题:

最终你想从它的 childView 触发 parentView 的选择器。

解决方案

在你的父布局中,添加这一行:

android:addStatesFromChildren="true"

如果您在 java 代码中引用了 parentView,那么您可以使用以下方法完成任务:

parentView.setAddStatesFromChildren(true);

其中,parentView 是您的父布局,即:RelativeLayout

注意:

确保您的 subview 没有复制父级的状态。即:android:duplicateParentStatechildView.setDuplicateParentState(true)

希望对您有所帮助!

关于android - 单击子布局中的元素时更改可扩展列表 subview 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19001946/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com