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

时间:2019-10-30 11:18:08

标签: android android-styles

在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的颜色不会改变。

2 个答案:

答案 0 :(得分:1)

实际上,您正在尝试将for (( i=0;i<=$(cat filename | wc -l);i++ )) do mkdir /PATH/$i done 中的Drawable设置为背景色,这是不正确的。尝试使用View

使用

background

代替

<item name="android:background">@color/waitness_color</item>

由于它是背景,因此将选择器从 res / color / 移到 res / drawable / 是很合逻辑的。另外,不要忘记将选择器重命名为<item name="backgroundColor">@color/waitness_color</item> 以符合特征。谢谢

答案 1 :(得分:0)

创建一个颜色选择器。

  <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>