The checkbox border is invisible on white background.
I played with di
None of the answers above worked for me, but this one did. It suggests using a selector and applying it to the checkbox, which worked perfectly for me.
This does not explain the odd look of the checkbox as shown above, which is why I wouldn't mark this question as a duplicate, but I think it still works as a solution.
It's too late to answer but I would like to share what worked for me.
Paste below code. It would change the CheckBox
border color and textColor
styles.xml
<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar">
<item name="colorControlNormal">#000</item> <!-- normal border color change as you wish -->
<item name="colorControlActivated">#000</item> <!-- activated color change as you wish -->
<item name="android:textColor">#FFFF3F3C</item> <!-- checkbox text color -->
</style>
now in your main_activity.xml place below CheckBox
code
<CheckBox android:id="@+id/check_agree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="I agree"
android:theme="@style/MyCheckBox"/> <!-- here apply your checkbox style -->
if above style not working then replace parent theme parent="Theme.AppCompat.NoActionBar"
with parent="Theme.AppCompat.Light"
. Hope it would work.
You can use either of them:
app:buttonTint="color code here"
or
android:buttonTint="color code here"
You can use the property
android:buttonTint="what you want"
to set your checkbox border color.
Did you try going through here, here and here?
And as per answering your question
But why checkbox does not look okay in usual xml
Thats because sometimes, the android graphical view is not able to render the custom views, in that case you need to run the code on the emulator or the device to test it out.
UPDATE In case you dont want to use drawables, then you can also define the drawable shape in xml like
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#ffffff" >
</solid>
<stroke
android:width="2dp"
android:color="#ff0000" >
</stroke>
<corners android:radius="5dp" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>