禁用视图后无法更改其背景

问题描述 投票:0回答:2

in styles.xml

<style name="waitnessCallEnableStyle">
    <item name="backgroundColor">@color/waitness_color</item>
</style>

res / colors / waitness_color.xml中>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/circle_paint_dark" android:state_enabled="false" />
    <item android:drawable="@drawable/circle_transparent" />
</selector>

在我的xml布局中:

<View
    android:id="@+id/waitressCallViewCircle"
    style="@style/waitnessCallEnableStyle"
    android:layout_width="144dp"
    android:layout_height="144dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

在禁用view的活动中

private lateinit var dataBinding: MainActivityBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    dataBinding =
            DataBindingUtil.setContentView<MainActivityBinding>(this, R.layout.main_activity)
    dataBinding.setHandler(this)

}

private fun setWaitressCallMakeMode() {
    dataBinding.waitressCallContainer.isClickable = false
    dataBinding.waitressCallContainer.isEnabled = false
    dataBinding.executePendingBindings()
}

它不起作用。禁用Background时,view颜色不会更改。

在styles.xml

创建颜色选择器。

  <selector xmlns:android="http://schemas.android.com/apk/res/android">


      <item android:state_enabled="true" android:drawable="@drawable/ic_button_gradient"/>
   <item android:state_enabled="false" android:drawable="@color/gray"/>

    </selector>

风格:

<style name="YourStyle">
     <item name="android:background">@color/your_color</item>
     <item name="android:textColor">@android:color/black</item>
</style>

实际上您实际上是在Drawable中尝试将View设置为背景色,这是不正确的。

waitness_color.xml从[[res / colors /

移动到res / drawable /,并将样式从backgroundColor更改为android:background并检查<style name="waitnessCallEnableStyle"> <item name="android:background">@drawable/test_selector</item> </style>
android android-styles
2个回答
0
投票

创建颜色选择器。


0
投票

实际上您实际上是在Drawable中尝试将View设置为背景色,这是不正确的。

© www.soinside.com 2019 - 2024. All rights reserved.