Android版面:为什么单选按钮会在底边被切掉?

时间:2016-06-30 19:16:37

标签: android xml android-layout android-studio android-linearlayout

对此非常陌生。设计视图在屏幕模拟器上看起来很好,但在我的物理手机上进行调试时会被切断。

enter image description here

我不知道还有什么要补充的。

这是activity_main.xml

<TextView
    android:scrollbars = "vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/SpinnerPrompt"
    android:ellipsize="marquee"
    android:id="@+id/textViewMinutes"
    android:layout_alignTop="@+id/radMale"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/BtnCap"
    android:id="@+id/btnGenerate"
    android:layout_below="@+id/spinnerMinutes"
    android:layout_centerHorizontal="true" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinnerMinutes"
    android:spinnerMode="dropdown"
    android:layout_below="@+id/textViewMinutes"
    android:layout_alignLeft="@+id/textViewMinutes"
    android:layout_alignStart="@+id/textViewMinutes"
    android:layout_toStartOf="@+id/radioGroup"
    android:layout_toLeftOf="@+id/radioGroup" />

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/btnGenerate" />

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/btnGenerate"
    android:layout_toEndOf="@+id/btnGenerate"
    android:id="@+id/radioGroup"
    android:layout_above="@+id/btnGenerate">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Male"
        android:id="@+id/radMale"
        android:checked="true"
        />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Female"
        android:id="@+id/radFemale"
        />
</RadioGroup>

这是strings.xml

<resources>
<string name="app_name">Name</string>
<string name="BtnCap">Generate!</string>
<string name="SpinnerPrompt">Choose Number:</string>
<string name="Male">Male</string>
<string name="Female">Female</string>

2 个答案:

答案 0 :(得分:1)

这是由于屏幕尺寸不同,分辨率不同。

请检查https://stackoverflow.com/a/35311502/2826147

您可以尝试使用 weightSum ,它会解决您的问题,

检查这个

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:id="@+id/textViewMinutes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:ellipsize="marquee"
        android:scrollbars="vertical"
        android:text="@string/SpinnerPrompt" />

    <Button
        android:id="@+id/btnGenerate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/spinnerMinutes"
        android:layout_centerHorizontal="true"
        android:text="@string/BtnCap" />

    <Spinner
        android:id="@+id/spinnerMinutes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textViewMinutes"
        android:layout_alignStart="@+id/textViewMinutes"
        android:layout_below="@+id/textViewMinutes"
        android:layout_toLeftOf="@+id/radioGroup"
        android:layout_toStartOf="@+id/radioGroup"
        android:spinnerMode="dropdown" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/btnGenerate" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btnGenerate"
        android:layout_toEndOf="@+id/btnGenerate"
        android:layout_toRightOf="@+id/btnGenerate"
        android:weightSum="2" >

        <RadioButton
            android:id="@+id/radMale"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:checked="true"
            android:text="Male" />

        <RadioButton
            android:id="@+id/radFemale"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="Female" />
    </RadioGroup >
</RelativeLayout >

答案 1 :(得分:0)

如果没有屏幕截图,很难说,但似乎您正在将您的广播组对齐到按钮的末尾。因此,手机屏幕上可能没有足够的区域来显示所有单选按钮,这可能是它被切割的原因。

但同样,没有截图,很难说

- 在看到屏幕截图后编辑 -

让您的XML文件如下。问题是按钮顶部和父顶部之间的空间太小,无法放入两个单选按钮

<TextView
    android:scrollbars = "vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/SpinnerPrompt"
    android:ellipsize="marquee"
    android:id="@+id/textViewMinutes"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:id="@+id/radioGroup"
    android:layout_alignParentTop="true" >

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Male"
        android:id="@+id/radMale"
        android:checked="true"
        />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Female"
        android:id="@+id/radFemale"
        />
</RadioGroup>

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinnerMinutes"
    android:spinnerMode="dropdown"
    android:layout_below="@+id/textViewMinutes"
    android:layout_toStartOf="@id/radioGroup"
    android:layout_alignStart="@+id/textViewMinutes" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/BtnCap"
    android:id="@+id/btnGenerate"
    android:layout_below="@+id/radioGroup"
    android:layout_centerHorizontal="true" />

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/btnGenerate" />