Android - 类似设备上的布局呈现错误

时间:2014-09-29 20:12:55

标签: android layout resources

我有两个模拟的Genymotion设备:

  • (A) Google Nexus One(API 10 - 2.3.7)480x800,240dpi。
  • (B) Google Nexus S(API 16 - 4.1.1)480x800,240dpi。

我有一个位于layout-land资源文件夹中的对话框的xml布局文件。

在设备(A)上,布局会相应地显示为我的期望。在设备(B)上,正确显示。布局的宽度被压缩,因此构成它的不同视图重叠。

两个设备中的布局不应完全相同,因为它们具有相同的尺寸?

编辑1:

这里要求的是导致问题的XML布局(见下图):

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        tools:ctx=".SomeActivity"
        android:id="@+id/parent_some_activity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fadingEdge="vertical"
        android:fadingEdgeLength="1dp">

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:tools="http://schemas.android.com/tools"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="15dp"
                    android:background="#ffe9edde"
            >

    <TextView
            android:id="@+id/label_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:textColor="#ff851514"
            android:text="Some text here"
            android:gravity="center_vertical|left"
            android:textSize="13sp"/>

        <TextView
            android:id="@+id/label_2"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:textColor="#ff851514"
            android:text="Some more text"
            android:gravity="center_vertical|left"
            android:textSize="13sp"
            android:layout_alignLeft="@+id/label_3"
            android:layout_alignTop="@+id/label_4"/>

    <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radio_group_1"
            android:orientation="horizontal"
            android:layout_alignLeft="@+id/label_1"
            android:layout_below="@+id/label_1"
            android:layout_marginTop="15dp">

        <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"
                android:id="@+id/radio_btn_option_1"
                android:checked="true"
                android:textColor="#000000"/>

        <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2"
                android:id="@+id/radio_btn_option_2"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="10dp"
                android:checked="false"
                android:textColor="#000000"/>

    </RadioGroup>

    <TextView
            android:id="@+id/label_3"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:textColor="#ff851514"
            android:text="Another label"
            android:gravity="center_vertical|left"
            android:textSize="13sp"
            android:layout_alignLeft="@+id/label_1"
            android:layout_marginTop="5dp"
            android:layout_marginRight="5dp"
            android:layout_below="@+id/radio_group_1"/>

        <ToggleButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" BLA "
                android:id="@+id/spinner_2"
                android:layout_alignTop="@+id/label_3"
                android:layout_toRightOf="@+id/label_3"/>

        <TextView
            android:id="@+id/label_4"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:textColor="#ff851514"
            android:text="More Text"
            android:gravity="center_vertical|left"
            android:textSize="13sp"
            android:layout_below="@+id/checkbox_1"
            android:layout_alignLeft="@+id/label_5"
            android:layout_marginTop="5dp"/>

    <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup"
            android:orientation="horizontal"
            android:layout_below="@+id/label_4"
            android:layout_alignLeft="@+id/label_4">

        <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3"
                android:id="@+id/radio_btn_option_3"
                android:checked="true"
                android:textColor="#000000"/>

        <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="4"
                android:id="@+id/radio_btn_option_4"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="10dp"
                android:checked="false"
                android:textColor="#000000"/>

    </RadioGroup>

    <TextView
            android:id="@+id/label_5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff851514"
            android:text="One more label"
            android:gravity="center_vertical|left"
            android:textSize="13sp"
            android:layout_alignTop="@+id/label_1"
            android:layout_alignLeft="@+id/checkbox_2"/>

    <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Check 3"
            android:id="@+id/checkbox_3"
            android:textSize="13sp"
            android:layout_alignParentRight="true"
            android:textColor="#000000"
            android:layout_alignTop="@+id/checkbox_2"/>

    <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Check 2"
            android:id="@+id/checkbox_2"
            android:singleLine="false"
            android:textSize="13sp"
            android:layout_toLeftOf="@+id/checkbox_3"
            android:layout_marginRight="5dp"
            android:textColor="#000000"
            android:checked="false"
            android:layout_below="@+id/label_5"/>

    <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Check 1"
            android:id="@+id/checkbox_1"
            android:textSize="13sp"
            android:layout_marginTop="5dp"
            android:layout_below="@+id/checkbox_2"
            android:layout_alignLeft="@+id/checkbox_2"
            android:textColor="#000000"/>

        <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Check 4"
                android:id="@+id/checkbox_4"
                android:textSize="13sp"
                android:layout_marginTop="5dp"
                android:layout_below="@+id/checkbox_3"
                android:layout_alignLeft="@+id/checkbox_3"
                android:textColor="#000000"/>

        <SeekBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/seekBar"
                android:layout_alignBottom="@+id/radioGroup"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignRight="@+id/spinner_2"
                android:layout_alignEnd="@+id/spinner_2"/>

    </RelativeLayout>
</ScrollView>

编辑2:

到目前为止,我唯一的解决方案是专门针对出现问题的设备定义维度。有谁知道更好的解决方案?

0 个答案:

没有答案