【问题标题】:how to set RadioButton left margin dynamically based on api level如何根据api级别动态设置RadioButton左边距
【发布时间】:2015-12-11 04:15:02
【问题描述】:

将布局作为 ALertDialog 的内容,例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
>

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingTop="30dp"
    android:paddingBottom="30dp"
    android:paddingLeft="35dp"
    android:paddingRight="35dp">

    <RadioButton
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/radiobutton_selector"
        android:text="button one" />

    <RadioButton
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/radiobutton_selector"
        android:text="button two" />
</RadioGroup>

<LinearLayout> ... </LinerLayout>
</LinearLayout>

在 api 级别 16 下,RadioButton 在对话框的左侧有更多空间。尝试以下似乎不起作用:

group.setPadding(10, 10, 10, 10); 

有不同的方法吗?如何为不同的api级别动态设置填充?

【问题讨论】:

  • 为什么不使用带有 RadioButton 的自定义图像?

标签: android android-radiobutton


【解决方案1】:

这可以通过设置android:button="@null"android:drawableLeft ="name" 来实现。

  <RadioGroup
        android:id="@+id/radios"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:inputType="text"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/first"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:drawablePadding="20dp"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/first"
            android:textSize="20dip" />

        <RadioButton
            android:id="@+id/second"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:drawablePadding="20dp"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/second"
            android:textSize="20dip" />
    </RadioGroup>
  • 和drawable之间的填充是用android:drawablePadding="10dp"设置的

在 API

在 API 17 上,左侧填充与可绘制的单选按钮相关。同样适用于补丁九。

此答案基于来自question 的@James Baca 答案

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2017-02-25
    • 2017-02-01
    相关资源
    最近更新 更多