Клавиши переключателей leftDrawable и rightDrawable - PullRequest
3 голосов
/ 26 марта 2012

У меня есть RadioGroup с переключателями:

  <RadioGroup 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:id="@+id/radioGroup1" 
     >


        <RadioButton 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content" 
            android:checked="true" 
            android:text="AAA" 
            android:button="@null"
            android:drawableLeft="@drawable/flag_icon"
            android:drawableRight="@android:drawable/btn_radio"
            android:drawablePadding="60dp"
            android:id="@+id/radio2"/>

        <RadioButton.../>
    </RadioGroup>

Как вы видите выше, для RadioButton я определил следующие атрибуты:

...
android:button="@null"
 android:drawableLeft="@drawable/flag_icon"
 android:drawableRight="@android:drawable/btn_radio"
 ...

Таким образом, радиокнопка расположена на правой стороне текста радиокнопки . С левой стороны от текста кнопки находится значок флага.

Для того, чтобы между пробелами и значком флага и значком кнопки были пробелы, я использую android:drawablePadding="60dp" для их размещения.

Однако с указанным кодом пробел 60dp применяется как к левому элементу (значок флага), так и правому элементу (переключатель), который заканчивается радио текст, расположенный в середине между двумя объектами рисования.

Хотелось бы, чтобы текст радиокнопки и оставляли для рисования (значок флага) между ними меньше места, тогда как текст радиокнопки и вправо drawable (переключатель) имеет большее расстояние между. Как определить различные поля для левой и правой кнопки переключателя?

Ответы [ 3 ]

4 голосов
/ 15 июня 2012

Просто проверьте это:

            <RadioButton
                android:id="@+id/radio0"
                style="@style/my_recording_title_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@null"
                android:button="@null"
                android:checked="true"
                android:drawableRight="@drawable/presets_sel"
                android:padding="12dp"
                android:text="Play with EarPhones" />

            <View
                android:layout_width="fill_parent"
                android:layout_height="3dp"
                android:background="@drawable/line" />

            <RadioButton
                android:id="@+id/radio1"
                style="@style/my_recording_title_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@null"
                android:button="@null"
                android:drawableRight="@drawable/presets_sel"
                android:padding="12dp"
                android:text="Play with internal speakers" />
        </RadioGroup>
0 голосов
/ 09 ноября 2012

Подобные вещи часто возникают. И печальная правда в том, что ограничения использования RadioGroup с RadioButtons строго ограничивают вашу способность сделать ваши макеты выглядящими правильно.

Я разместил очень подробное решение здесь , которое предполагает отказ от Радиогрупп. Я знаю, что это кажется большой работой, но код очень прост. Пока радиогруппы не будут внедрены лучше, это лучшее решение, которое я нашел.

Удачи!

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

попробуйте этот XML-файл или добавьте свойство android: gravity = "center_horizontal | center_vertical" или android: gravity = "center" в вашем переключателе иудалить padding

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >   

    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/logo"
            android:button="@null"            
            android:drawableRight="@drawable/ic_launcher"
            android:gravity="center_horizontal|center_vertical"

            android:text="RadioButton" />
    </RadioGroup>

</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...