gpt4 book ai didi

Android:将父状态传播到 subview

转载 作者:IT老高 更新时间:2023-10-28 23:39:05 26 4
gpt4 key购买 nike

我遇到了一些我基本上不知道如何解决的问题。我有一个带有一些子组件的 LinearLayout,例如 ImageView、TextView 等,一个示例可以在下面的 xml 中看到:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/list_buttom_top">

<LinearLayout android:gravity="center_vertical"
android:paddingLeft="10dip"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0">

<TextView android:text="title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
style="@style/content_page_large_text" />

<TextView android:text="summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/subtitle"
android:visibility="visible"
style="@style/content_page_small_text" />
</LinearLayout>

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/itemCount"
android:visibility="gone"
style="@style/content_page_large_count_text" />

<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chevron"
style="@style/list_buttom_chevron" />

</LinearLayout>

样式 list_buttom_top 表示当 LinearLayout 处于按下状态时,需要更改背景颜色,到目前为止,这是可行的。问题是 content_page_large_text 还说 TextView 的文本颜色也需要更改,但没有发生。单击 LinearLayout 时唯一的颜色变化是它的背景。

<style name="list_buttom_top">
<item name="android:clickable">true</item>
<item name="android:paddingTop">10dip</item>
<item name="android:paddingBottom">10dip</item>
<item name="android:paddingLeft">10dip</item>
<item name="android:paddingRight">10dip</item>
<item name="android:gravity">center_vertical</item>
<item name="android:background">@drawable/background_view_rounded_top</item>
</style>

<style name="list_buttom_chevron">
<item name="android:paddingLeft">4.0dip</item>
<item name="android:paddingTop">2.0dip</item>
<item name="android:paddingRight">4.0dip</item>
<item name="android:paddingBottom">2.0dip</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:src">@drawable/chevron</item>
</style>

我尝试在我的 TextViews 中使用这个 android:duplicateParentState="true"但它也没有工作。 ImageView 也是如此,当我单击 LinearLayout 时,它的源图像没有改变。

我在这里遗漏了什么吗?感谢关注T

最佳答案

我认为你应该在线性布局中设置 android:addStatesFromChildren="true" ,这样子的状态就会传播给父。

另外,请确保 NOT 将此与 android:duplicateParentState="true" 结合使用,因为它会导致堆栈溢出异常(基本上会导致无限引用循环)。

关于Android:将父状态传播到 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465604/

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