单选按钮不显示

时间:2018-08-20 09:10:44

标签: android android-radiobutton

我正在“高级Android开发课程”中进行练习。此代码不显示RadioButtons

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="@color/my_fragment_color"
   android:orientation="horizontal"
   tools:context=".SimpleFragment">

<TextView
    android:id="@+id/fragment_header"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
    android:padding="10dp"
    android:text="@string/question_article"/>

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

    <RadioButton
        android:id="@+id/radio_button_yes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="8dp"
        android:text="@string/yes"/>

    <RadioButton
        android:id="@+id/radio_button_no"
        android:layout_marginRight="8dp"
        android:text="@string/no"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RadioGroup>

删除RadioButtons时出现

TextViewTextView如何隐藏这些按钮?我也尝试使用marginEnd或权重属性,但这不是解决方案。

5 个答案:

答案 0 :(得分:4)

您的 TextView match_parent ,这就是您的RadioButton不可见的原因

尝试在您的 android:layout_weight="1" 中设置 TextView 可以

尝试一下

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/my_fragment_color"
        android:orientation="horizontal"
        tools:context=".SimpleFragment">

        <TextView
            android:id="@+id/fragment_header"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
            android:padding="10dp"
            android:text="@string/question_article"/>

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

            <RadioButton
                android:id="@+id/radio_button_yes"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="8dp"
                android:text="@string/yes"/>

            <RadioButton
                android:id="@+id/radio_button_no"
                android:layout_marginRight="8dp"
                android:text="@string/no"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </RadioGroup>
</LinearLayout>

答案 1 :(得分:2)

尝试一下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/fragment_header"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:padding="10dp"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
        android:text="@string/question_article"/>

    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/radio_button_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:text="@string/yes"/>

        <RadioButton
            android:id="@+id/radio_button_no"
            android:layout_marginRight="8dp"
            android:text="@string/no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RadioGroup>




</LinearLayout>

答案 2 :(得分:2)

使用换行内容作为TextView的高度和宽度,如下所示。

 <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/gray_btn_bg_color"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/fragment_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
        android:padding="10dp"
        android:text="question_article"/>
    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:id="@+id/radio_button_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="yes"/>
        <RadioButton
            android:id="@+id/radio_button_no"
            android:text="no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RadioGroup>
</LinearLayout>

您可以使用 weight属性根据视图的权重将部分布局空间分配给视图,为了获得更好的响应UI,请尝试使用 ConstraintLayout 。要了解有关ConstraintLayout的更多信息,请点击Here

答案 3 :(得分:2)

您的LinearLayoutorientation="horizontal",但您的第一个TextView的宽度为layout_width="match_parent",没有其他视图空间。

查看布局。我不确定您是否要在TextView上方垂直放置RadioButton

答案 4 :(得分:1)

textView的属性分配不正确

android:layout_width="match_parent"

改为分配wrap_content,它将起作用。