我是Android的新手,我需要在我的活动中添加单选按钮,但我需要将文本放在项目符号按钮的上面。
请帮忙。我找到了以下内容,虽然我不明白@ drawable / main_selector和@ style / TabStyle是什么。
任何人都可以给我101指南。
更新
我根据一些建议使用了以下内容,但没有工作:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<RadioButton
android:text="something that is on top"
android:id="@+id/toggle_tab_left"
android:button="?android:attr/listChoiceIndicatorSingle"
style="@null"/>
<RadioButton
android:button="?android:attr/listChoiceIndicatorSingle"
android:text="something that is on top"
android:id="@+id/toggle_tab_right"
style="@null"/>
</RadioGroup>
更新2
我从Warpzit得到了我的解决方案,但是因为我将问题标记为已回答,有人可以帮我解决下面的对齐问题。 我将连续有5个单选按钮,其中一些将有更长的文本分成2行。当文本适合屏幕,因为横向或平板电脑,那么所有文本应该在一行中:
更新3
...根据屏幕大小,文本可以分成不同数量的行。它永远不会是标准的
答案 0 :(得分:28)
@style/TabStyle
只是一种应用的样式,您可以忽略它。 @drawable/main_selector
是根据情况切换的图形。您可以阅读有关选择器here的更多信息。
将文字置于顶部:
的示例<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<RadioButton
android:text="Text on top"
android:button="@null"
android:background="#f00"
android:layout_weight="1"/>
<RadioButton
android:text="Text on top"
android:button="@null"
android:background="#0f0"
android:layout_weight="1"/>
</RadioGroup>
将给出以下结果:
如果您希望文字显示在上方按钮,您可以使用以下xml:
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<RadioButton
android:text="Text on top"
android:button="@null"
android:drawableBottom="@android:drawable/btn_radio"
android:gravity="center"
android:layout_weight="1"/>
<RadioButton
android:text="Text on top"
android:button="@null"
android:drawableBottom="@android:drawable/btn_radio"
android:gravity="center"
android:layout_weight="1"/>
</RadioGroup>
这将得到以下结果:
答案 1 :(得分:19)
要补充Warpzit great answer,您应该在按钮上使用android:gravity="center_horizontal|bottom"
和android:layout_height="match_parent"
来对齐它们。
此外,无需从AOSP复制单选按钮drawable,使用?android:attr/listChoiceIndicatorSingle
。
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/radioGroup1"
android:layout_width="400dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="20dp" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableBottom="?android:attr/listChoiceIndicatorSingle"
android:gravity="center_horizontal|bottom"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableBottom="?android:attr/listChoiceIndicatorSingle"
android:gravity="center_horizontal|bottom"
android:text="RadioButton dsfsdfsdfsdfsdf" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableBottom="?android:attr/listChoiceIndicatorSingle"
android:gravity="center_horizontal|bottom"
android:text="RadioButton fdsfsd fdsfsdf fsfsdfs" />
</RadioGroup>
答案 2 :(得分:1)
使这种效果易于应用的一种好方法是使用样式。为此,请将此代码放在styles.xml
标签下的resources
上。
<style name="RadioWithTextOnTop">
<item name="android:button">@null</item>
<item name="android:drawableBottom">?android:attr/listChoiceIndicatorSingle</item>
<item name="android:gravity">center_horizontal|bottom</item>
</style>
然后按如下所示将其应用于您的RadioButton:
<RadioButton
style="@style/RadioWithTextOnTop"
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="RadioButton" />
答案 3 :(得分:0)
我最终使用的最简单的解决方案是:
<RadioButton
...
android:gravity="center_horizontal|bottom"
android:drawableTop="?android:attr/listChoiceIndicatorSingle"
android:button="@null"
/>
它还使用了动画图标listChoiceIndicatorSingle
的较新样式,这是默认样式。