RadioButton左側顯示文字及右側button對齊
阿新 • • 發佈:2019-01-22
想要實現的效果:
一、將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);