Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 其他设备中的布局_Android_Android Layout - Fatal编程技术网

Android 其他设备中的布局

Android 其他设备中的布局,android,android-layout,Android,Android Layout,嗨,我有一个关于布局的问题。 当我在android studio上启动应用程序时,布局非常完美。 如果我在其他设备中安装应用程序,则所有设备都未对齐(按钮、tex、ecc) 你能帮我吗 有一种制作通用布局的方法吗 这是布局的一个示例: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns

嗨,我有一个关于布局的问题。 当我在android studio上启动应用程序时,布局非常完美。 如果我在其他设备中安装应用程序,则所有设备都未对齐(按钮、tex、ecc)

你能帮我吗


有一种制作通用布局的方法吗

这是布局的一个示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Profilo"
    android:background="#FFFFFF">

    <TextView
        android:id="@+id/tvUserEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center"
        android:layout_marginStart="121dp"
        android:layout_marginLeft="121dp"
        android:layout_marginTop="46dp"
        android:textSize="30dp" />

    <Button
        android:id="@+id/btnElenco"
        android:layout_width="219dp"
        android:layout_height="50dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="93dp"
        android:layout_marginLeft="93dp"
        android:layout_marginBottom="467dp"
        android:background="@drawable/background_button1"
        android:text="ELENCO SEGNALAZIONI"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="148dp"
        android:layout_marginLeft="148dp"
        android:layout_marginTop="78dp"
        android:text="ADMIN"
        android:textSize="36sp" />

</RelativeLayout>

问题在于您的视图在dp中有长度和边距-这是一种糟糕的做法。您必须为每个密度缩放它们。
这是如何避免这种情况的

有一种方法可以制作通用布局。您应该遵循指导原则,设置屏幕(父屏幕)的大小。不同的屏幕具有不同的纵横比,给出绝对值可能会影响布局输出

您可以先使用LinearLayout和RelativeLayout制作布局,然后签出ConstraintLayout

下面是对代码的一个小补丁。它应该更有效。祝你一切顺利

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Profilo"
    android:background="#FFFFFF">

    <TextView
        android:id="@+id/tvUserEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="100dp"
        android:layout_marginRight="100dp"
        android:layout_marginTop="46dp"
        android:textSize="30dp" />

    <Button
        android:id="@+id/btnElenco"
        android:layout_width="219dp"
        android:layout_height="50dp"
        android:layout_below="@id/textView2"
        android:layout_marginTop="150dp"
        android:layout_centerHorizontal="true"
        android:background="@drawable/background_button1"
        android:text="ELENCO SEGNALAZIONI"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/tvUserEmail"
        android:text="ADMIN"
        android:layout_marginTop="50dp"
        android:textSize="36sp" />

</RelativeLayout>


好的,谢谢,我必须删除所有内容还是可以更改代码?@NicolòVolpe您可以将dp值放入一个单独的
dimen
变量中,并根据每个屏幕密度缩放dp。对于mdpi、hdpi、xhdpi等,我明天会尝试。