gpt4 book ai didi

java - 应用小工具 : Ripple effect lost on list item when background is added to outer layout

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:11 27 4
gpt4 key购买 nike

这件事让我发疯。这是它的工作原理

<强>1。一切都设置为默认值

  • 涟漪效应奏效
  • ListView 项目分隔符可见

original state

<强>2。小部件布局中添加了白色背景

  • 纹波丢失
  • ListView 项目分隔符也消失了
  • 看起来列表项样式已被删除

white background

这是代码

主小部件布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="@android:color/white" -- this line only applies for case 2
android:padding="@dimen/widget_padding">

<TextView
...
android:background="@color/primary"
android:textColor="@android:color/white"/>

<ListView
...
android:drawSelectorOnTop="true""/>

<TextView
...
android:textColor="?android:attr/textColorSecondary"/>

</LinearLayout>

列表项布局

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:id="@+id/widgetItem">

<TextView
...
android:textColor="@android:color/black"
android:textSize="14sp"/>

<TextView
...
android:textColor="@color/negative_amount"
android:textSize="16sp"
android:textStyle="bold"/>

</RelativeLayout>

我花了一天时间尝试所有可能的组合,但没有任何帮助。而且我不明白 ListView 周围某些布局的不相关背景更改会完全改变行为。什么鬼?

我想以最干净的方式解决它 - e.i.没有自定义选择器的黑客攻击。如果可能,这应该直接开箱即用。

最佳答案

看起来您正在为您的 Activity 使用深色主题,因此波纹是白色的,因此在白色背景上不可见。最简单的解决方案是使用主题的浅色变体,这会导致波纹变黑。

例如,如果您使用的是 AppCompat 主题,您可以将此行添加到您的 ListView :

<ListView
...
android:drawSelectorOnTop="true"
style="@style/Theme.AppCompat.Light"/>

您还可以将其应用于 View 层次结构,例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="@android:color/white"
android:padding="@dimen/widget_padding"
android:theme="@style/Theme.AppCompat.Light">

这将导致在 LinearLayout 中使用主题及其所有 subview 。

此外,您可以通过添加 android:theme 来指定 Activity 范围甚至应用范围的主题。属性为 <activity><application>标记到您的 AndroidManifest.xml .

关于java - 应用小工具 : Ripple effect lost on list item when background is added to outer layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35876840/

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