创建颜色选择器。
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 /
backgroundColor
更改为android:background
并检查<style name="waitnessCallEnableStyle">
<item name="android:background">@drawable/test_selector</item>
</style>
创建颜色选择器。
实际上您实际上是在Drawable
中尝试将View
设置为背景色,这是不正确的。