【问题标题】:Radio button disappeared after placing inside radio group in linear layout以线性布局放置在单选组内后单选按钮消失
【发布时间】:2019-07-16 02:07:20
【问题描述】:

我想让两个单选按钮并排使用,因此使用水平布局,但我遇到的一个问题是两个单选按钮都被选中,而不是任何单选按钮都应该被​​选中的正常行为。所以我在linear layout horizontal 中使用了radio group,但令人惊讶的是所有单选按钮都消失了。

<LinearLayout
        android:layout_width="150dip"
        android:layout_height="22dip"
        android:background="@color/silver"
        android:orientation="horizontal" >

       <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="150dip"
        android:layout_height="22dip"
        android:background="@color/silver" >

       <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="/share" 
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="/value" 
            android:textAppearance="?android:attr/textAppearanceSmall" />

        </RadioGroup>

       </LinearLayout>

我需要得到abc下方的单选按钮。

完整的 XML

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:background="@color/dark_snuff"
        android:orientation="horizontal" >

        <LinearLayout
        android:layout_width="150dip"
        android:layout_height="45dp"
        android:background="@color/silver"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView8"
            android:layout_width="150dp"
            android:layout_height="23dip"
            android:background="@color/silver"
            android:text=" Brokerage"
            android:typeface="serif"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <LinearLayout
        android:layout_width="150dip"
        android:layout_height="22dip"
        android:background="@color/silver"
        android:orientation="horizontal" >

       <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="150dip"
        android:layout_height="22dip"
        android:background="@color/silver" >

       <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="/share" 
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="/value" 
            android:textAppearance="?android:attr/textAppearanceSmall" />

        </RadioGroup>

       </LinearLayout>

        </LinearLayout>

        <EditText
            android:id="@+id/editText8"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textColor="@color/white"
            android:background="@drawable/backgroud"
            android:gravity="center"
            android:typeface="serif"
            android:ems="10"
            android:inputType="numberDecimal"
            android:text="0.0" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/editText9"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1.00"
            android:gravity="center"
            android:textColor="@color/white"
            android:background="@drawable/backgroud"
            android:typeface="serif"
            android:ems="10"
            android:inputType="numberDecimal"
            android:text="0.0" />

    </LinearLayout>

【问题讨论】:

  • RadioGroup extends LinearLayout 因此,如果 LL 仅包含 RG,则不需要任何 LL。此外,显示您的 xml 的其余部分。
  • @codeMagic 感谢您的回复.. 请找到我的 XML 代码.. 如果我删除 Radio Group 我可以看到单选按钮
  • 保留 RG 去掉 LL 会怎样?
  • @codeMagic 如果我只保留RG,那么结果也是相同的单选按钮仍然消失
  • @codeMagic 感谢您的帮助我已经找到答案了。我在无线电组中缺少orientation 参数

标签: android radio-button radio-group


【解决方案1】:

我终于找到了答案,因为我缺少radio groupOrientation 参数....

添加了这个参数android:orientation="horizontal"

现在 XML 是

<RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="150dip"
        android:layout_height="22dip"
        android:orientation="horizontal"
        android:background="@color/silver" > 

现在不需要linear layout horizontal

【讨论】:

  • 我很高兴它可以正常工作,但肯定有其他事情发生。就像它的父母一样。 LinearLayout,不需要该属性,因为它的默认值为horizontal
  • @codeMagic 我很想知道我们如何知道android的源代码或一些深入的东西......就像你说的Radio Group extends Linear Layout我不知道......你能不能与我分享我如何才能学习这些概念。如果这是一个不成熟的问题,请道歉...如果我给您带来麻烦,也很抱歉..谢谢
  • 没问题。 Looking in the docs 可以在类名下方看到类继承列表。在那里你可以看到RadioGroup extends LinearLayout。你不需要那个来源。您应该能够在您的 sdk 中找到源代码,但您也可以下载源代码 through the docs。也可以在github上找到,镜像其他地方。
  • @codeMagic 感谢您的回复,我将从您的建议中开始学习...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
  • 2018-09-18
  • 1970-01-01
  • 2014-06-30
  • 2020-12-23
  • 2015-12-28
相关资源
最近更新 更多