如何更改工具栏菜单Xamarin Android中的CheckBox颜色?

时间:2017-01-03 16:10:42

标签: android android-layout xamarin xamarin.android

我试图更改复选框的颜色,但它不起作用。 如何在选中后更改复选框的颜色?我应用主题但不起作用:

<item
    android:id="@+id/tagsSelectAll_menu"
    app:actionViewClass="android.support.v7.widget.AppCompatCheckBox"
    android:checkable="true"    
    android:theme="@style/WhiteCheck"
    app:showAsAction="always"
    android:title="SelectAll"/>

2 个答案:

答案 0 :(得分:0)

我认为你的问题是得到Checkbox的实际参考。您可以通过onCreateOptionsMenu()onOptionsItemSelected()执行此操作,具体取决于您的使用案例。保留对Checkbox的引用,并在某些事件后更新颜色。

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    MenuItem item = menu.findItem(R.menu.your_menu_item);
    // `checkbox` is a field of the class
    checkbox = (Checkbox) item.getActionView().findViewById(R.id.my_checkbox);
}

How to change the color of a CheckBox?

答案 1 :(得分:-1)

Try this,

    <item
     android:id="@+id/tagsSelectAll_menu"
     app:actionViewClass="android.support.v7.widget.AppCompatCheckBox"
     android:checkable="true"    
     android:theme="@style/WhiteCheck"
     app:showAsAction="always"
     android:background="@drawable/button_states"
     android:title="SelectAll"    
    />


button_states xml:-

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="1000dp"/>
<solid android:color="#00000000"/>
<stroke android:color="#00000000" android:width="2dip"/>
<padding android:top="4dp" android:right="4dp" android:left="4dp" android:bottom="4dp"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="1000dp"/>
<solid android:color="#00000000"/>
<stroke android:color="#00000000" android:width="2dip"/>
<padding android:top="4dp" android:right="4dp" android:left="4dp" android:bottom="4dp"/>
</shape>
</item>
</selector>