安卓 - 单选按钮组文本位置

3
我有一个包含RadioGroup和RadioButton的布局。它可以工作,但是显示上有问题。我在下面分享了截图。
Android 4.2.1 - 4.65英寸 Android 4.2.1 - 4.65英寸 平板电脑 Android 2.2 - 7英寸 平板电脑 Android 2.2 - 7英寸 Android 4.1.2 - 5.5英寸 Android 4.1.2 - 5.5英寸 底部栏布局代码:
<?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="wrap_content"
    android:padding="3dp" android:gravity="center"
    android:background="@drawable/bottom"
     >

    <RadioGroup
        android:id="@+id/radioTur"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:measureWithLargestChild="true"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal" >

        <RadioButton
    android:id="@+id/rad_anasayfa"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:button="@null"
    android:gravity="center"
    android:drawableTop="@drawable/anasayfabutton"
    android:textColor="@color/White"
    android:onClick="Anasayfa_TIKLA"
    android:text="Anasayfa" >
    </RadioButton>

      <RadioButton
    android:id="@+id/rad_haber"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:button="@null"
    android:gravity="center"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:drawableTop="@drawable/haberlerbutton"
    android:textColor="@color/White"
    android:onClick="Haber_TIKLA"
    android:text="Haberler" >
    </RadioButton>

        <RadioButton
    android:id="@+id/rad_duyuru"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:button="@null"
    android:gravity="center"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:drawableTop="@drawable/duyurubutton"
    android:textColor="@color/White"
    android:onClick="Duyuru_TIKLA"
    android:text="Duyurular" >
    </RadioButton>

          <RadioButton
    android:id="@+id/rad_yemek"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:button="@null"
    android:gravity="center"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:drawableTop="@drawable/yemekbutton"  
    android:textColor="@color/White"
    android:onClick="Yemek_TIKLA"
    android:text="Yemek" >
    </RadioButton>

            <RadioButton
    android:id="@+id/rad_search"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:button="@null"
    android:gravity="center"
    android:layout_weight="1"
    android:onClick="Arama_TIKLA"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:drawableTop="@drawable/search_icon"
    android:textColor="@color/White"
    android:text="Arama" >
    </RadioButton>

</RadioGroup>
</LinearLayout>

主要布局中的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
     android:id="@+id/AnaLayout"
     >
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" >

    <include
        android:id="@+id/cell1"
        android:layout_height="wrap_content"
        layout="@layout/bottombar"
         />
</LinearLayout>
</RelativeLayout>

我已经工作了几天,但是我还不理解问题。有人能帮助我吗?

我的图标 我的图标


使用android:layout_width="wrap_content"来设置RadioButtons的宽度。 - Robi Kumar Tomar
感谢您的快速回复,但它并没有起作用。 - Caner Balım
@CanerBalım 请查看我的回答。 - GrIsHu
将单选按钮组放置在水平滚动视图中,它就会起作用。 - jyomin
可能是适用于多个屏幕尺寸/密度的灵活Android布局的重复问题。 - Chintan Khetiya
3个回答

3
我发现问题所在。问题出在android:button="@null"
如果RadioButton具有android:button="@null"属性,则结果如下: enter image description here 如果RadioButton没有android:button="@null"属性,则结果如下: enter image description here 如果RadioButton具有android:button="@null"android:background="@android:color/transparent"属性,则结果如下: enter image description here 我将android:background="@android:color/transparent"属性添加到所有RadioButton中,问题得以解决。

当我设置android:button="@null"时,单选按钮没有被选中(点击)。我做错了什么吗?请帮忙。http://stackoverflow.com/questions/28052820/android-custom-radio-button-not-getting-checked - Shirish Herwade

0

试试这个...

RadioGroup宽度更改为match_parent并尝试。

<RadioGroup
        android:id="@+id/radioTur"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:measureWithLargestChild="true"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal" >

并且

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" >

    <include
        android:id="@+id/cell1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/bottombar"
         />
</LinearLayout>

enter image description here

这是我的完整代码

<?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="wrap_content"
    android:gravity="center"
    android:padding="3dp" >

    <RadioGroup
        android:id="@+id/radioTur"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:measureWithLargestChild="true"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rad_anasayfa"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/uP13v"
            android:gravity="center"
            android:onClick="Anasayfa_TIKLA"
            android:text="Anasayfa"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_haber"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/uP13v"
            android:gravity="center"
            android:onClick="Haber_TIKLA"
            android:text="Haberler"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_duyuru"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/uP13v"
            android:gravity="center"
            android:onClick="Duyuru_TIKLA"
            android:text="Duyurular"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_yemek"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/uP13v"
            android:gravity="center"
            android:onClick="Yemek_TIKLA"
            android:text="Yemek"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_search"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/uP13v"
            android:gravity="center"
            android:onClick="Arama_TIKLA"
            android:text="Arama"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </RadioButton>
    </RadioGroup>

</LinearLayout>

感谢您,上一个孩子的文本问题已经解决了。但是其他的还没有改变。 - Caner Balım
@CanerBalım 将 RadioButton 的宽度更改为 android:layout_width="0dp", 同时添加 android:singleLine="true" - Hariharan
多行文本已经消失,但文本看起来像这样安娜...哈布...杜伊...耶姆...阿拉马 - Caner Balım
@CanerBalım 请检查我的编辑。将文本大小更改为android:textSize="18dp" - Hariharan
是的,图片很好,但似乎第二张图片(平板电脑Android 2.2 - 7英寸)左侧有空间。 - Caner Balım
显示剩余11条评论

0

尝试下面的布局。 我已经给所有单选按钮分配了相等的权重,这样它就可以根据屏幕大小调整其大小。 现在它运行得很好。根据您的需要更改图像。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/aa"
    android:gravity="center"
    android:padding="3dp"
    android:weightSum="1" >

    <RadioGroup
        android:id="@+id/radioTur"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rad_anasayfa"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".2"
            android:button="@null"
            android:gravity="center"
            android:drawableTop="@drawable/ic_circle"
            android:onClick="Anasayfa_TIKLA"
            android:text="Anasayfa"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@android:color/white" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_haber"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".2"
            android:button="@null"
            android:drawableTop="@drawable/ic_circle"
            android:gravity="center"
            android:onClick="Haber_TIKLA"
            android:text="Haberler"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@android:color/white" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_duyuru"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".2"
            android:button="@null"
            android:drawableTop="@drawable/ic_circle"
            android:gravity="center"
            android:onClick="Duyuru_TIKLA"
            android:text="Duyurular"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@android:color/white" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_yemek"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".2"
            android:button="@null"
            android:drawableTop="@drawable/ic_circle"
            android:gravity="center"
            android:onClick="Yemek_TIKLA"
            android:text="Yemek"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@android:color/white" >
        </RadioButton>

        <RadioButton
            android:id="@+id/rad_search"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".2"
            android:button="@null"
            android:drawableTop="@drawable/ic_circle"
            android:gravity="center"
            android:onClick="Arama_TIKLA"
            android:text="Arama"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@android:color/white" >
        </RadioButton>
    </RadioGroup>

</LinearLayout>

在我的端上看起来完美。@CanerBalım 在你的第一个 RadioButton 中添加一行 android:gravity="center" 并检查。 - GrIsHu
谢谢,但在Android 2.2平板电脑上无法工作。你为什么要添加radioGroup-text和radioGroup-android:drawableTop属性? - Caner Balım
这只是为了查看目的,没有其他用途。你能给我看一下你的屏幕截图吗?@CanerBalım - GrIsHu
感谢您的帮助。您的代码视图看起来像第二张图片,但是最后一个子元素的文本已经改进了。 - Caner Balım
问题是剩余的空间和文本。 - Caner Balım
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接