Невозможно изменить фон просмотра, когда он отключен - PullRequest
0 голосов
/ 30 октября 2019

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

1 голос
/ 30 октября 2019

На самом деле вы пытаетесь установить Drawable в качестве цвета фона в View, что неверно. попробуйте как background.

использовать

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

вместо

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

И поскольку это фон, вполне логично переместить этот селектор из res / color / до res / drawable / . Также не забудьте переименовать селектор как waitness_background, чтобы выровнять его по характеристикам. Спасибо

0 голосов
/ 30 октября 2019

создать селектор цвета.

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