Ответ 1
Вы можете использовать свойство
android:buttonTint="what you want"
, чтобы установить цвет рамки флажка.
Граница флажка невидима на белом фоне.
Я играл с разными цветовыми параметрами без успеха. Мне нужна черная рамка. Да, есть примеры, чтобы сделать пользовательский флажок. Во всех доступных примерах нормальная коробка видна внутри новой формы. И растягиваемая форма узкая без текста в android: text = ""
Но почему флажок не выглядит нормально в обычном xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutBottom1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#FFFFFF"
android:gravity="center"
>
<CheckBox
android:id="@+id/checkBottom1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AAAA"
android:visibility="visible"
android:textColor="#000000"
android:checked="true"
/>
</LinearLayout>
Любые идеи? Спасибо!
Вы можете использовать свойство
android:buttonTint="what you want"
, чтобы установить цвет рамки флажка.
Слишком поздно, чтобы ответить, но я хотел бы поделиться тем, что сработало для меня.
Вставьте под кодом. Он изменит цвет границы CheckBox
и 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>
теперь в main_activity.xml месте ниже 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 -->
Если выше стиль не работает, замените родительскую тему parent="Theme.AppCompat.NoActionBar"
на parent="Theme.AppCompat.Light"
. Надеюсь, что это сработает.
Пробовали ли вы здесь, здесь и здесь?
И в соответствии с ответом на ваш вопрос
But why checkbox does not look okay in usual xml
Это потому, что иногда графическое представление Android не может отображать пользовательские представления, в этом случае вам нужно запустить код на эмуляторе или устройстве, чтобы проверить его.
UPDATE Если вы не хотите использовать чертежи, вы также можете определить форму, которая может быть выгружена в xml, например
<?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>