各种设备的布局不同

时间:2016-10-14 21:09:59

标签: android

我想知道为什么我在不同的设备上运行应用程序时,我的片段布局有不同的尺寸。我认为使用dp就足够了,但现在我觉得我错过了什么。 对于istance,在我的Nexus 6P上它看起来很好,但在AVD Emulator的Nexus 4中看起来更小

布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<Button
    android:id="@+id/deleteButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top|left"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="15dp"
    android:background="@color/colorPrimaryLight"
    android:text="@string/delete_button" />

<Button
    android:id="@+id/moveButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginTop="15dp"
    android:layout_toRightOf="@id/deleteButton"
    android:background="@color/colorPrimaryLight"
    android:text="@string/move_button" />

<Button
    android:id="@+id/copyButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/deleteButton"
    android:layout_gravity="center"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="15dp"
    android:background="@color/colorPrimaryLight"
    android:text="@string/copy_button" />

<Button
    android:id="@+id/renameButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/moveButton"
    android:layout_gravity="center"
    android:layout_margin="15dp"
    android:layout_toRightOf="@id/copyButton"
    android:background="@color/colorPrimaryLight"
    android:text="@string/rename_button" />

</RelativeLayout>

编辑:我忘记编写设置dialogFragment大小的代码。

    /**
     * Setting Dialog size
     */
    Window window = getDialog().getWindow();
    Point size = new Point();
    // Store dimensions of the screen in `size`
    Display display = window.getWindowManager().getDefaultDisplay();
    display.getSize(size);
    window.setLayout((int) (size.y * 0.40), (int) (size.x * 0.60));
    window.setGravity(Gravity.CENTER);

1 个答案:

答案 0 :(得分:0)

你的大多数元素宽度和高度似乎都是wrap_content,所以我会默认检查你的模拟器中配置的Font,如果它的大小较小,整个内容都会很小。