Как я могу избавиться от лишнего пространства между кнопкой флажка и текстом при использовании специального переключателя флажка? - PullRequest
1 голос
/ 12 марта 2012

У меня есть очень простой пользовательский флажок выбора:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="true" android:drawable="@drawable/ui_checkbox_checked" />
   <item android:drawable="@drawable/ui_checkbox" />
</selector>

, который я устанавливаю, используя следующий код:

<CheckBox android:id="@+id/checkbox1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center_horizontal"
   android:button="@drawable/checkbox_selector"
   android:textSize="12dp"
   android:text="checkbox 1"
   />

Настраиваемое изображение флажка меньше стандартного изображения, которое поставляется с Android, но текст все еще находится в том же месте, как если бы большое изображение все еще использовалось.

Так что вместо того, чтобы выглядеть как [X]_checkbox 1 это выглядит как [X]____checkbox 1 с большим пространством между окном и текстом. Как я могу это исправить?

Ответы [ 4 ]

4 голосов
/ 12 марта 2012

Одно из возможных решений - установить флажок без текста. Затем создайте TextView и используйте android:layout_toRightOf="@+id/checkbox1"

Возможно, он не идеален, поскольку подразумевает использование дополнительного вида, но именно так я решил проблему, с которой вы в настоящее время сталкивались в прошлом.

2 голосов
/ 12 марта 2012
1 голос
/ 13 апреля 2015

Размер элемента управления зависит от размеров переднего плана и фона.Когда вы настраиваете флажок - вы делаете пользовательский передний план, но фон остается от Android.Если ваш пользовательский передний план больше, чем фон Android, проблем нет.Если вы используете меньший пользовательский foregraund, тогда размер флажка рассчитывается исходя из размера системного фона (что не очень хорошо).Попробуйте использовать маленький прозрачный .png в качестве фона: android: background = "@ drawable / small_bg" (или поэкспериментируйте с некоторыми .9.png)

0 голосов
/ 12 марта 2012

Вы можете установить атрибут android:paddingLeft, чтобы избежать лишних пробелов между изображением и текстом Пример

 <CheckBox android:id="@+id/checkbox1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center_horizontal"

   android:textSize="12dp"
   android:text="checkbox 1"
   android:paddingLeft="0dip"
   />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...