1. 程式人生 > >RadioButton左側顯示文字及右側button對齊

RadioButton左側顯示文字及右側button對齊

想要實現的效果:


一、將RadioButton顯示在文字的右側,只需在佈局檔案中設定兩個屬性:

android:button="@null"
        android:drawableRight="@android:drawable/btn_radio"

二、想讓位於文字右側的RadioButton對齊,只需要給所有RadioButton設定相同的固定寬度,下面是一個完整的佈局檔案。也可以直接用RadioGroup當最外層佈局。

<?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="fill_parent"
    android:gravity="center" >

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/darker_gray" >

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二三" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二三四" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二三四五" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二三四五六" >
        </RadioButton>

        <RadioButton
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableRight="@android:drawable/btn_radio"
            android:text="一二三四五六七" >
        </RadioButton>
    </RadioGroup>

</LinearLayout>

三、動態新增的RadioButton如何實現button右側對齊。

動態新增的RadioButton可以像ListView中的item那樣,使用LayoutInflator物件將一個只有RadioButton的佈局檔案轉化成一個RadioButton按鈕。但是,RadioButton的寬高應該在程式碼中通過RadioButton物件的setLayoutParams(LayoutParams params);方法設定,以達到所有button在文字右側時對齊的效果。關於button在文字右側的設定則可以在xml佈局檔案中進行設定。

下面是一個RadioButton的佈局檔案。

<?xml version="1.0" encoding="utf-8"?>
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:button="@null"
    android:drawableRight="@android:drawable/btn_radio" >

</RadioButton>

將該佈局轉換成RadioButton物件並設定固定寬高的程式碼。
RadioButton radio = (RadioButton) inflater.inflate(R.layout.radio,
					null);
			LayoutParams radioParams = new LayoutParams(280,
					android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
			radio.setLayoutParams(radioParams);