今天真的是受益匪浅,为了搞出这个单选按钮,当点击时使其显示被点击状态的背景,并且保持这个背景,当切换按钮,到别的按钮时,则恢复原先的背景,最重要的是,有9个按钮,需要他们分排显示,有布局要求
那么要用RadioGroup,却不能用linearlayout去布局几排几列,因为会是单选状态失效,或者是出现2排则有可以选择两个选项,3排则可选择3个选项,这不是我想要的效果,我要的是N排N列,只能选择一个
那么,写了一个demo做实验
breast.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TestActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<LinearLayout
android:id="@+id/btnBreast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginTop="15dp"
android:layout_gravity="left"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/nippleRetraction"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:checked="true"
android:gravity="center"
android:text="乳头内陷"
android:textColor="@android:color/black"
android:textSize="17.0sp" />
<RadioButton
android:id="@+id/acuteMastitis"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="急性乳腺炎"
android:textColor="@android:color/black"
android:textSize="17.0sp"
android:layout_marginLeft="200px"
android:layout_marginTop="-48px"/>
<RadioButton
android:id="@+id/breastSarcoma"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="乳房肉瘤"
android:textColor="@android:color/black"
android:textSize="17.0sp"
/>
<RadioButton
android:id="@+id/breasCancer"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="乳腺癌"
android:textColor="@android:color/black"
android:textSize="17.0sp" />
<RadioButton
android:id="@+id/adenosis"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="乳腺腺病"
android:textColor="@android:color/black"
android:textSize="17.0sp"
android:layout_marginLeft="200px"
android:layout_marginTop="-48px"/>
<RadioButton
android:id="@+id/fibroadenoma"
android:layout_width="130dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="纤维腺瘤"
android:textColor="@android:color/black"
android:textSize="17.0sp" />
<RadioButton
android:id="@+id/intraductalPapilloma"
android:layout_width="250dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="乳管内乳头状瘤"
android:textColor="@android:color/black"
android:textSize="17.0sp"
android:layout_marginLeft="245dp"
android:layout_marginTop="-48px"/>
<RadioButton
android:id="@+id/cysticHyperplasia"
android:layout_width="250dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="乳腺囊性增生病"
android:textColor="@android:color/black"
android:textSize="17.0sp" />
<RadioButton
android:id="@+id/epithelialHyperplasia"
android:layout_width="280dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@drawable/radio"
android:button="@null"
android:gravity="center"
android:text="单纯性乳腺上皮增生症"
android:textColor="@android:color/black"
android:textSize="17.0sp"
android:layout_marginLeft="350px"
android:layout_marginTop="-48px"/>
</RadioGroup>
</LinearLayout>
</RelativeLayout>
注意这些色彩部分,用marginleft,margintop做布局,就可以解决这个问题
得到的效果
参考http://blog.csdn.net/aminfo/article/details/7558308
除此之外,radioButton布局:
让几行radioButton对齐:
<!-- 低血糖反应 -->
<TextView
style="@style/layout_vertical"
android:layout_weight="1"
android:background="@color/followup_tipbackground"
android:text="@string/diabetes_hypoglycemia"
android:textColor="@color/followup_tipword"
android:textSize="@dimen/tilletextsize" />
<LinearLayout
style="@style/layout_vertical"
android:layout_weight="1"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/lowbs_react"
style="@style/layout_horizontal"
android:layout_weight="3"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/lowbs_null"
android:layout_weight="1"
android:layout_width="0dp" 至关重要的 对齐语句
android:text="@string/followup_havenot"
android:textSize="@dimen/followup_content" />
<RadioButton
android:id="@+id/lowbs_interval"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/diabetes_occasionally"
android:textSize="@dimen/followup_content" />
<RadioButton
android:id="@+id/lowbs_often"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/diabetes_frequently"
android:textSize="@dimen/followup_content" />
<RadioButton
android:layout_weight="1"
android:text=""
android:button="@null" />
</RadioGroup>
</LinearLayout>
<!-- 此次随访分类 -->
<TextView
style="@style/layout_vertical"
android:layout_weight="1"
android:background="@color/followup_tipbackground"
android:text="@string/diabetes_classify"
android:textColor="@color/followup_tipword"
android:textSize="@dimen/tilletextsize" />
<LinearLayout
style="@style/layout_vertical"
android:layout_weight="1"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/followupClass"
style="@style/layout_horizontal"
android:layout_weight="3"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/controlSatis"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/followup_satisfaction"
android:textSize="@dimen/followup_content" />
<RadioButton
android:id="@+id/controlNotSatis"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/followup_dissatisfied"
android:textSize="@dimen/followup_content" />
<RadioButton
android:id="@+id/untowardEffect"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/followup_adverse"
android:textSize="@dimen/followup_content" />
<RadioButton
android:id="@+id/complication"
android:layout_weight="1"
android:layout_width="0dp"
android:text="@string/followup_complication"
android:textSize="@dimen/followup_content" />
</RadioGroup>
</LinearLayout>