我希望下图中的单选按钮与center
对齐。我使用过引力但它没有用。
<RadioGroup
android:id="@+id/qualityRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5"
>
<RadioButton
android:id="@+id/qty1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:layout_gravity="center_vertical"
android:button="@drawable/radio_button_selector"
android:checked="false"
android:tag="1"/>
<RadioButton
android:id="@+id/qty2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="2"
/>
<RadioButton
android:id="@+id/qty3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="3"
/>
<RadioButton
android:id="@+id/qty4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="4"
/>
<RadioButton
android:id="@+id/qty5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:checked="false"
android:tag="5"/>
</RadioGroup>
如果我在线性布局中添加单选按钮而不是将其对齐到中心,但是在这种情况下无线电组功能不起作用。
我想要中心对齐的单选按钮以及无线电组功能,即一次只能选择一个项目。
答案 0 :(得分:7)
我有解决此问题的方法
android:textSize="0.1sp"
android:drawableTop="@drawable/selector_dashboard_button"
android:button="@null"
添加了这些东西而不是android:background =“”
这是我的完整布局代码
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:checked="true"
android:drawableTop="@drawable/selector_dashboard_button"
android:padding="10dp"
android:tag="1"
android:textSize="0.1sp" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_inventory_button"
android:padding="10dp"
android:textSize="0.1sp" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_check_list_button"
android:padding="10dp"
android:textSize="0.1sp" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_vendor_button"
android:padding="10dp"
android:textSize="0.1sp" />
</RadioGroup>
答案 1 :(得分:1)
试试我已测试过 添加FrameLayout并给予孩子体重并从Radiobutton中移除重量并将中心布局重力给予Radiobutton,它将根据需要提供
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="5"
android:orientation="horizontal">
<RadioGroup
android:id="@+id/qualityRadioGroup"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:orientation="horizontal">
<RadioButton
android:id="@+id/qty1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@mipmap/ic_launcher"
android:button="@null"
android:tag="1" />
<RadioButton
android:id="@+id/qty2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:padding="5dp"
android:button="@null"
android:background="@mipmap/ic_launcher"
android:tag="2" />
<RadioButton
android:id="@+id/qty3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:padding="5dp"
android:button="@null"
android:background="@mipmap/ic_launcher"
android:tag="3" />
<RadioButton
android:id="@+id/qty4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:padding="5dp"
android:button="@null"
android:background="@mipmap/ic_launcher"
android:tag="4" />
<RadioButton
android:id="@+id/qty5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:padding="5dp"
android:button="@null"
android:background="@mipmap/ic_launcher"
android:tag="5" />
</RadioGroup>
</LinearLayout>
对于可绘制选择器请参阅此Link
答案 2 :(得分:1)
下面提到的代码正在运行。
<RadioButton
android:id="@+id/qty1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/radio_button_selector"
android:tag="1"/>
添加
机器人:按钮=&#34; @空&#34;
机器人:drawableTop =&#34; @可绘制/ radio_button_selector&#34;
答案 3 :(得分:1)
一个老问题,但我刚刚找到了一种适合我的情况的解决方案:
在您的radioButton中添加android:minWidth="0dp"
,这将删除可绘制按钮左右两侧的空格。
如果您有一个带有TextView的LinearLayout,并且希望该按钮在TextView上方或下方完美地水平居中,则效果很好。
答案 4 :(得分:0)
使用边距将圆圈置于中间
<RadioButton
android:id="@+id/qty4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="4"
android:marginLeft="5dp"
/>
对于不同的屏幕,您需要以编程方式执行此操作 并阅读此SO Thread
答案 5 :(得分:0)
尝试添加引力=&#34; center&#34;在电台组内并检查
<LinearLayout
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">
<RadioGroup
android:id="@+id/qualityRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">
<RadioButton
android:id="@+id/qty1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:layout_gravity="center_vertical"
android:button="@drawable/radio_button_selector"
android:checked="false"
android:tag="1"/>
</LinearLayout>
答案 6 :(得分:0)
您可以尝试为文本和单选按钮提供相同的布局宽度。给他们重力Gravity.CENTER_HORIZONTAL
?
由于
答案 7 :(得分:0)
将您的Linearlayout
替换为Relativelayout
因为重力可能不适用于线性布局
答案 8 :(得分:0)
使用保证金&amp;移除重量将圆圈放在中间
<RadioButton
android:id="@+id/qty1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:tag="1"/>
答案 9 :(得分:0)
在您的布局中:
<LinearLayout
android:id="@+id/btn2_padding_left"
android:layout_width="50dp"
android:layout_height="match_parent"
android:orientation="horizontal"/>
<RadioButton
android:id="@+id/radio_btn_pg2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:paddingBottom="12dp"
android:paddingTop="12dp"
android:scaleX="0.5"
android:scaleY="0.5" />
<LinearLayout
android:id="@+id/btn2_padding_right"
android:layout_width="50dp"
android:layout_height="match_parent"
android:orientation="horizontal"/>
在您的活动类中:
btn2_padding_left.setOnClickListener {
radio_btn_pg2.isChecked = true
}
btn2_padding_right.setOnClickListener {
radio_btn_pg2.isChecked = true
}