Intereting Posts
Android: onCreate () вызывается несколько раз (а не мной) Использовать AppRTC с настраиваемым сервером Общие элементы, анимация между фрагментами Студия Android / Gradle build не работает в выпуске: не удалось определить зависимости задачи: app: crashlyticsStoreDeobsRelease ' Двоичная строка XML-файла # 17: ошибка раздувания класса <unknown>, вызванная UnsupportedOperationException: невозможно преобразовать в измерение: type = 0x2 Android: запись видео с «непрерывным» автофокусом Служба не останавливается при вызове метода stopService Сила Закрыть на регулярном выражении! Отображение сообщения строки состояния из BroadcastReceiver Android Studio измените ключевые клавиши KeyBoard Найти программный путь внешнего USB-накопителя? ViewPager перехватывает все события onTouch по оси x. Как отключить? HTML5 или Android VectorDrawable – доступен ли он как-то для до-Lollipop версий Android? Как вы достигаете компонентов дизайна материалов до API 21?

Как выровнять радиокнопку в центре экрана

Я использую кнопки Radio в качестве вкладки в своем приложении.

Я загрузил изображения для него, но они выравниваются влево. Как заставить их выровнять по центру.

Введите описание изображения здесь

Вот как выглядит мой XML-файл

<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:padding="20dip" android:background="#fff"/> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:checkedButton="@+id/allcontacts" android:id="@+id/contactgroup"> <RadioButton android:id="@+id/allcontacts" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1"/> <RadioButton android:id="@+id/categories" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1"/> <RadioButton android:id="@+id/favourites" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" /> </RadioGroup> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:visibility="gone" /> </LinearLayout> </TabHost> 

Solutions Collecting From Web of "Как выровнять радиокнопку в центре экрана"

Попробуйте android:gravity="center" в xml для каждого RadioButton.

Я вижу, что вы wrap_content, поэтому теоретически это ничего не должно делать, но похоже, что значки разделены поровну, возможно, RadioGroup равномерно разделяет пространство, поэтому используя андроид: гравитация будет иметь эффект.

Думаю, стоит сделать снимок.

РЕДАКТИРОВАТЬ

Попробуй это:

  <RadioButton android:id="@+id/allcontacts" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:marginLeft="20dp" android:gravity="center" android:layout_weight="1"/> 

Вам нужно будет сыграть с android:marginLeft="20dp" чтобы он был правильно центрирован, но это позволит вам делать то, что вы хотите сделать. Я скопировал ваш макет и протестировал это время, поэтому я знаю, что он работает! 🙂

Раньше у меня была аналогичная проблема, я понимаю, поэтому я пытаюсь объяснить это вам.

Скриншот времени исполнения

Выше, это скриншот моего приложения, как вы можете видеть, я также сделал то же самое, у меня было дно выравнивания меню, это RadioGroup и три RadionButton внутри него, я хочу, чтобы каждый значок меню выравнивал центр для RadionButton, теневое изображение ( 9-patch), показанные вместе при триггере события кнопки.
Сначала я использовал атрибут android: button, относящийся к выделенному селектору, селектор имеет два допустимых состояния между проверкой и снятием флажка, но я не могу выровнять центр значка меню и закрасить изображение тени RadionButton, они выглядят так:

Введите описание изображения здесь

Я попробовал включить android: layout_gravity = center и android: gravity = center с RadionButton, но он также не получил эффекта. После этого мой помощник сказал мне, что атрибут android: button относится к фону, а не к фону, затем я использую android: background вместо android: button, и он работал, ниже мой код:

 <RadioGroup android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal" android:background="@drawable/menu_bg"> <RadioButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:checked="true" android:background="@drawable/menu_item_selector" /> <RadioButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:background="@drawable/menu_item_selector" /> <RadioButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:background="@drawable/menu_item_selector" /> </RadioGroup> 

Menu_item_selector – важная вещь, потому что у него была установка силы тяжести :

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_item_layer_list" android:state_checked="true" /> <item android:drawable="@drawable/menu_item_layer_list" android:state_pressed="true" /> <item> <bitmap android:src="@drawable/menu_item_off" android:gravity="center" /> </item> </selector> 

Потому что у меня было два изображения, чтобы рисовать, когда пользователь поворачивает состояние кнопки, отображается фоновое изображение тени и изображение активного состояния тени, поэтому я использовал список слоев для его реализации, активный значок также имел настройку силы тяжести , ниже – код menu_item_layer_list :

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_bg_pressed" /> <item> <bitmap android:src="@drawable/menu_item_on" android:gravity="center" /> </item> </layer-list> 

Я не знаю, что решение было совершенным или нет, потому что я всегда реализую его как взгляд и рисую. Но я думаю, что Android SDK предоставил более удобный компонент, давайте закончим работу с xml-конфигурацией, мы должны учиться и использовать его.

Вы можете использовать пустые представления, чтобы равномерно распределить пространство между переключателями. В этом случае у меня есть 3 переключателя, которые выглядят в центре, красивыми и аккуратными.

 <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <View android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" /> <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="" /> <View android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" /> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:checked="true" android:gravity="center" android:text="" /> <View android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="" /> <View android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" /> </RadioGroup> 

Вы можете поместить свой RadioButton в FrameLayout и центрировать их:

 <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/gray_percent" android:orientation="horizontal" > <FrameLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1"> <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:button="@drawable/rb_temp1" android:checked="true" android:gravity="center" /> </FrameLayout> <FrameLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1"> <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:button="@drawable/rb_temp1" android:gravity="center" /> </FrameLayout> </RadioGroup> 

В моем случае содержимое моего переключателя было выровнено правильно. Я позволяю им выровнять по центру с помощью setroid: background – какое-то значение, например, @null или некоторый цвет. Ниже был мой макет

 <LinearLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" > <RadioGroup android:paddingTop="5dp" android:id="@+id/radioGroupAsTab" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:background="@color/v3_header_bg" android:fadingEdge="none" android:orientation="horizontal" > <RadioButton android:id="@+id/rbDiagnose" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:button="@null" android:checked="true" android:drawableTop="@drawable/v3_tab_diagnose" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:text="@string/tabCaption_health_maintenance" android:textColor="@color/radio_astab_changecolor" android:textSize="10sp" android:textStyle="bold" /> <RadioButton android:id="@+id/rbHistory" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:button="@null" android:drawableTop="@drawable/v3_tab_history" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:text="@string/tabCaption_history" android:textColor="@color/radio_astab_changecolor" android:textSize="10sp" android:textStyle="bold" /> <RadioButton android:id="@+id/rbChart" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:button="@null" android:drawableTop="@drawable/v3_tab_chart" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:text="@string/tabCaption_graph" android:textColor="@color/radio_astab_changecolor" android:textSize="10sp" android:textStyle="bold" /> <RadioButton android:id="@+id/rbCyclopedia" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:button="@null" android:drawableTop="@drawable/v3_tab_encyclopedia" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:text="@string/tabCaption_encyclopedia" android:textColor="@color/radio_astab_changecolor" android:textSize="10sp" android:textStyle="bold" /> <RadioButton android:id="@+id/rbSetting" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:button="@null" android:drawableTop="@drawable/v3_tab_setting" android:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:text="@string/tabCaption_info" android:textColor="@color/radio_astab_changecolor" android:textSize="10sp" android:textStyle="bold" /> </RadioGroup> </LinearLayout> 

Поместите андроид: gravity = "center" в тег RadioGroup. Это работает.

  <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal" > <RadioButton android:id="@+id/rb1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="One"/> <RadioButton android:id="@+id/rb2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Two"/> </RadioGroup> 

Попробуйте добавить android:layout_gravity="center_horizontal" в свою RadioGroup .

Я использовал эту линию в своей RadioGroup и она работает нормально!

 android:gravity="center|left" 

Я пробовал все вышеперечисленное, и он не работает.

Я нашел лучшее решение, которое хотел бы поделиться. Установите кнопку @null ; Затем добавьте drawable to android:drawableTop или любой другой тип позиции. Это позволит нам установить чертежи в другое положение radioButton. Добавьте padding или drawablePadding чтобы она не прилипала к какой-либо стороне кнопки / текста.

 android:background="@drawable/background_paint" android:drawableTop="@drawable/shape" android:button="@null" 

Это было в противоположной стороне в моем случае, и я просто положил android: paddingLeft = "0dp", и это сработало, поэтому вы должны попробовать андроид: paddingRight = "0dp" для радиолюбителей