c# - Android - 手机上的布局与设计器的尺寸不同

标签 c# android layout xamarin

目前我正在开发一个显示一些值的移动应用程序(它们永远不会改变,所以它们保存在一个列表中)。当我使用设备 4.7 WXGA 在设计器中设计页面时,底部有很多空间,但在我的真实手机 (Motorola Moto G3) 上没有空间。

现在我担心如果我在不同的手机(三星等)上部署应用程序会发生什么。我一直认为使用 AXML 之类的东西创建 UI 的优势是使应用程序“响应式”,这意味着它适合运行它的设备。但为什么这没有发生?

有人可以给我提示如何实现这个吗?

编辑: 这是我的 AXML 代码 - 因为在这里我用 Text

替换了真实文本
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">
    <LinearLayout
        android:orientation="vertical"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout1"
        android:layout_marginTop="5dp">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout2"
            android:layout_margin="5dp"
            android:gravity="center">
            <LinearLayout
                android:orientation="horizontal"
                android:minWidth="25px"
                android:minHeight="25px"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/linearLayout6">
                <ImageView
                    android:layout_width="32dp"
                    android:layout_height="40dp"
                    android:id="@+id/imgLeft"
                    android:src="@drawable/arrow_left"
                    android:layout_marginRight="50dp" />
            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:minWidth="25px"
                android:minHeight="25px"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/linearLayout5"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/tbDin"
                android:textSize="35dp"
                android:layout_marginRight="15dp"
                android:textColor="@android:color/black" />
            <TextView
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:id="@+id/tbDinWert"
                android:textSize="35dp"
                android:textColor="@android:color/black"
                android:gravity="center"
                android:text="XX" />
            <ImageView
                android:layout_width="32dp"
                android:layout_height="40dp"
                android:id="@+id/imgRight"
                android:src="@drawable/arrow_right"
                android:layout_marginLeft="50dp" />
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout3"
        android:background="@android:color/transparent"
        android:layout_marginTop="5dp">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb1"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:inputType="none"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb2"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:inputType="none"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb3"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:inputType="none"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb3"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:inputType="none"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb4"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:inputType="none"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb5"
                android:textSize="16dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb6"
                android:textSize="10dp"
                android:layout_marginRight="142dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout4"
            android:layout_margin="5dp"
            android:background="@android:color/transparent"
            android:paddingLeft="15dp">
            <TextView
                android:layout_width="90dp"
                android:layout_height="match_parent"
                android:id="@+id/tb7"
                android:textSize="10dp"
                android:textColor="@android:color/black"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="142dp"
                android:gravity="center" />
            <TextView
                android:text="Text"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/TextView4"
                android:textSize="35dp"
                android:background="@android:color/transparent"
                android:textColor="@android:color/black"
                android:gravity="center" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

最佳答案

好的,所以首先你不能对像 linearLayout4 这样的 View 使用相同的 id。其次,正确的做法是最好的做法,所以不要创建这么多布局,创建标题和 ListView,然后填充它。如果您有 3 个项目或 333 个项目,请使用 ListView。

接下来不要像这样使用 android:layout_marginRight="142dp"。 margin 和 padding 应该小得多,为了达到拉伸(stretch)项目的效果,使用这样的东西:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout4"
    android:layout_margin="5dp"
    android:gravity="center">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="16dp"
        android:textColor="@android:color/black"
        android:text="Value"
        android:layout_weight="0.5"
        android:gravity="center"/>
    <TextView
        android:text="Text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="35dp"
        android:textColor="@android:color/black"
        android:layout_weight="0.5"
        android:gravity="center"/>
</LinearLayout>

您可以粘贴它以查看结果。

尝试在您正在创建应用程序的程序中练习设计。如果您使用的是 AndroidStudio,它具有预览功能,因此您可以检查不同尺寸的屏幕。

对于任何布局或 View ,如果您设置 android:layout_width="match_parent"android:layout_height="match_parent",它将始终适合设备。

尝试创建具有不同背景的布局和 View ,同时更改高度和宽度,以便您可以看到发生了什么。

关于c# - Android - 手机上的布局与设计器的尺寸不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38873343/

相关文章:

c# - 将 AutoFac 属性注入(inject)与 Moq 结合使用

java - 在Android上,如何编写代码,让我们点击第一页上的操作按钮就可以得到下一页的计算结果?

android - ionic 检查文件(路径,文件名)NOT_FOUND_ERR

java - 在 Jpanel 上放置组件

android - 代码似乎改变了我的布局文件

c# - 找到基于两个输入的唯一输出?

c# - 将对象类型作为参数传递

c# - 如何将 DateTime 转换为 int?

android - onActivityResult 没有被第二次调用

Css 边距顶部与边距底部