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

标签 android background expandablelistview pressed

我需要在单击 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/

相关文章:

Android 错误膨胀类 pl.droidsonroids.gif.GifImageView

Android 相机 - SD 卡不可用

java - 如何在 ExpandableListView 中添加多个 Textview

Android 单击时更改图像,自定义可扩展列表适配器

android - Intent.ACTION_VIEW 在可搜索中不起作用

java - 如何在java中突出显示android应用程序中的输入字段

flutter - Flutter中的背景音乐不起作用

android - XML 中的垂直条纹背景?

image - 如何使用跷跷板为面板背景设置图像?

android - 需要 Greendroid GDExpandableListActivity 示例