复选框在Android 5.02设备上的位置错误

时间:2019-07-11 05:14:19

标签: android xml android-layout checkbox

我有一个片段,其中包含12个CheckBoxes,左侧6个,右侧6个。 在具有Android 8.1的Moto E5中,就像在预览窗口中的Android Studio中一样,看起来(调试)正常。

现在,我刚刚安装到另一部手机,带有Android 5.0.2的LG G2和右侧的CheckBoxes出现在左侧。 那些复选框是RTL,左边的不是。

期望

enter image description here

错误

enter image description here

可能是什么问题?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/filtroEventos"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".FiltroEventos">

    <CheckBox
        android:id="@+id/filtro1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp"
        android:text="Disp." />

    <CheckBox
        android:id="@+id/filtro1_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="45dp"
        android:text="Disp." />

    <CheckBox
        android:id="@+id/filtro1_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="80dp"
        android:text="Disp." />

    <CheckBox
        android:id="@+id/filtro1_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_3"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="115dp"
        android:text="Entr." />

    <CheckBox
        android:id="@+id/filtro1_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_4"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="150dp"

        android:text="Evento" />

    <CheckBox
        android:id="@+id/filtro1_6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_5"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="185dp"

        android:text="Evento" />

    <CheckBox
        android:id="@+id/filtro3_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_marginStart="183dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="100dp"
        android:layoutDirection="rtl"
        android:text="Rest." />

    <CheckBox
        android:id="@+id/filtro3_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_marginStart="183dp"
        android:layout_marginTop="45dp"
        android:layoutDirection="rtl"
        android:text="Rest." />

    <CheckBox
        android:id="@+id/filtro3_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="183dp"
        android:layout_marginTop="77dp"
        android:layoutDirection="rtl"
        android:text="Rest." />

    <CheckBox
        android:id="@+id/filtro3_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_3"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="192dp"
        android:layout_marginTop="113dp"
        android:layoutDirection="rtl"
        android:text="Sal." />

    <CheckBox
        android:id="@+id/filtro3_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_4"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="183dp"
        android:layout_marginTop="147dp"
        android:layoutDirection="rtl"
        android:text="Rest." />

    <CheckBox
        android:id="@+id/filtro3_6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/filtro1_5"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="183dp"
        android:layout_marginTop="182dp"
        android:layoutDirection="rtl"
        android:text="Rest." />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="103dp"
        android:layout_marginTop="17dp"
        android:text="Alarmas" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="93dp"
        android:layout_marginTop="52dp"
        android:text="Supervision" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="94dp"
        android:layout_marginTop="87dp"
        android:text="Problemas" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="102dp"
        android:layout_marginTop="122dp"
        android:text="Accesos" />


    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="103dp"
        android:layout_marginTop="157dp"
        android:text="Sistema" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="114dp"
        android:layout_marginTop="192dp"
        android:text="Test" />

    <View
        android:layout_width="7dp"
        android:layout_height="220dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center"
        android:layout_marginStart="80dp"
        android:layout_marginTop="0dp"
        android:background="#FF0F28B4" />

    <View
        android:layout_width="7dp"
        android:layout_height="220dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center"
        android:layout_marginStart="171dp"
        android:layout_marginTop="0dp"
        android:background="#0F28B4" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

问题不在于Android版本,而是与屏幕密度有关。因此解决方案是创建一个dimens资源文件,为每个屏幕密度指定marginStart和marginTop。

Follow the example

答案 1 :(得分:0)

问题不适用于特定的Android版本。 如果要使用,请参考下面的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/filtroEventos"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/firstRelativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <CheckBox
            android:id="@+id/filtro1_1"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:text="Disp." />

        <CheckBox
            android:id="@+id/filtro1_2"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/filtro1_1"
            android:text="Disp." />

        <CheckBox
            android:id="@+id/filtro1_3"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/filtro1_2"
            android:text="Disp." />

        <CheckBox
            android:id="@+id/filtro1_4"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/filtro1_3"
            android:text="Entr." />

        <CheckBox
            android:id="@+id/filtro1_5"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/filtro1_4"
            android:text="Evento" />

        <CheckBox
            android:id="@+id/filtro1_6"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/filtro1_5"

            android:text="Evento" />
    </RelativeLayout>


    <View
        android:id="@+id/firstView"
        android:layout_width="7dp"
        android:layout_height="180dp"
        android:layout_marginStart="5dp"
        android:layout_toEndOf="@+id/firstRelativeLayout"
        android:background="#FF0F28B4" />
    <RelativeLayout
        android:id="@+id/secondRelativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        android:layout_toEndOf="@+id/firstView">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:text="Alarmas" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/textView1"
            android:text="Supervision" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/textView2"
            android:text="Problemas" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/textView3"
            android:text="Accesos" />


        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/textView4"
            android:text="Sistema" />

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_below="@+id/textView5"
            android:text="Test" />
    </RelativeLayout>


    <RelativeLayout
        android:id="@+id/thirdRelativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        android:layout_toEndOf="@+id/secondView">
        <CheckBox
            android:id="@+id/filtro3_1"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:text="Rest." />

        <CheckBox
            android:id="@+id/filtro3_2"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:layout_below="@+id/filtro3_1"
            android:text="Rest." />

        <CheckBox
            android:id="@+id/filtro3_3"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:layout_below="@+id/filtro3_2"
            android:text="Rest." />

        <CheckBox
            android:id="@+id/filtro3_4"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:layout_below="@+id/filtro3_3"
            android:text="Sal." />

        <CheckBox
            android:id="@+id/filtro3_5"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:layout_below="@+id/filtro3_4"
            android:text="Rest." />

        <CheckBox
            android:id="@+id/filtro3_6"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:layout_below="@+id/filtro3_5"
            android:text="Rest." />
    </RelativeLayout>
    <View
        android:id="@+id/secondView"
        android:layout_width="7dp"
        android:layout_height="180dp"
        android:layout_marginStart="10dp"
        android:layout_toEndOf="@+id/secondRelativeLayout"
        android:background="#0F28B4" />
</RelativeLayout>

答案 2 :(得分:0)

要正确实现布局,请尝试将LinearLayoutweight

请尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_weight=".34"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <LinearLayout
                    android:layout_weight=".17"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_1"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:text="Disp."/>
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Disp." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Disp." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Entr." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Evento" />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical">
                    <CheckBox
                        android:id="@+id/filtro1_6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Evento" />
                </LinearLayout>
            </LinearLayout>
            <View
                android:layout_weight=".01"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:background="#FF0F28B4" />
            <LinearLayout
                android:layout_weight=".3"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_weight=".17"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Alarmas"/>
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Supervision" />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Problems" />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Accesos" />

                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Sistema" />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center">
                    <TextView
                        android:id="@+id/textView6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Test" />
                </LinearLayout>

            </LinearLayout>
            <View
                android:layout_weight=".01"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:background="#FF0F28B4" />
            <LinearLayout
                android:layout_weight=".34"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:gravity="center_vertical|right">
                <LinearLayout
                    android:layout_weight=".17"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Rest." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Rest." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Rest." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Sal." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Rest." />
                </LinearLayout>
                <LinearLayout
                    android:layout_weight=".16"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:gravity="center_vertical|right">
                    <CheckBox
                        android:id="@+id/filtro3_6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:text="Rest." />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

以上代码的输出为:

enter image description here

希望它对您有用。