该应用程序在我的手机上呈现不同,而在模拟器上看起来不错 [重复]

The app is rendering diffrent on my phone while looking fine on the emulator [duplicate]

提问人:Kfir Arnesty 提问时间:10/31/2023 最后编辑:Peter MortensenKfir Arnesty 更新时间:11/3/2023 访问量:46

问:

我在 Android Studio 中创建了一个应用,手机上的 UI 与模拟器上的 UI 不同。我检查了许多与我的手机类似的不同模拟器,它们的 UI 看起来不错。这两个示例如下:

这是模拟器。 模拟器尺寸为 6.4(1800 像素 x 2400 像素),420 DPI,Google Pixel 3a XL,API 34

这是我的手机。 我的手机尺寸为 6.7 (1800 像素 x 2400 像素) 345 DPI Redmi Note 9 Pro.

我是否做错了什么,导致模拟器和真实设备之间的结果不相等?

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="40sp"
        android:text="@string/No_information"
        android:paddingHorizontal="100sp"
        android:textSize="15sp"
        android:layout_marginTop="100sp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25sp"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/Num1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/question_mark"
            android:textSize="55sp"
            android:layout_marginTop="10sp"/>

        <ImageView
            android:id="@+id/Compare"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icons8_question_mark_100"
            android:contentDescription="@string/question_mark"
            android:layout_marginLeft="25sp"
            android:layout_marginRight="25sp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Num2"
            android:text="@string/question_mark"
            android:textSize="55sp"
            android:layout_marginTop="10sp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_marginTop="25sp">

        <ImageView
            android:id="@+id/less_than_pic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icons8_less_than_100"
            android:contentDescription="@string/less_than_pic"
            android:onClick="userChoose"/>

        <ImageView
            android:id="@+id/equal_to_pic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icons8_equal_sign_100"
            android:contentDescription="@string/equal_to"
            android:layout_marginRight="30sp"
            android:layout_marginLeft="30sp"
            android:onClick="userChoose"/>

        <ImageView
            android:id="@+id/more_than_pic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icons8_more_than_100"
            android:contentDescription="@string/more_than"
            android:onClick="userChoose"/>


    </LinearLayout>

    <Button
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bNext"
        android:text="@string/next_numbers"
        android:backgroundTint="#87CEFA"
        android:background="@drawable/rectangle"
        android:layout_marginTop="10sp"
        android:onClick="makeNumbers"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="30sp"
            android:layout_marginTop="10sp">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rb1"
                android:text="@string/_9_to_9"
                android:onClick="makeRange"/>

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rb2"
                android:text="@string/_99_to_99"
                android:onClick="makeRange"/>

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rb3"
                android:text="@string/_999_to_999"
                android:onClick="makeRange"/>

        </RadioGroup>

        <View
            android:layout_width="100sp"
            android:layout_height="match_parent"></View>

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/bold"
                android:id="@+id/checkBold"
                android:onClick="toggleBold"
                android:layout_marginTop="10sp"/>

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/color"
                android:id="@+id/checkColor"
                android:onClick="toggleColors"/>

        </RadioGroup>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20sp"
        android:paddingTop="10sp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/timeswon"
            android:text="You Were Right 0 Times"
            android:textSize="15sp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/timeslost"
            android:text="You Were Wrong 0 Times"
            android:layout_marginStart="35sp"
            android:textSize="15sp"/>

    </LinearLayout>

</LinearLayout>
布局 模拟器 android-linearlayout

评论

0赞 EJoshuaS - Stand with Ukraine 10/31/2023
如果V-master的回答适合您,请接受。这有助于未来的读者确定哪些答案也可能对他们有所帮助。

答:

0赞 V-master 10/31/2023 #1

您的手机似乎已设置为使用从右到左书写的文本(如阿拉伯语)的区域设置。

以下是其他有很好答案的问题: 如何在 Android 中的布局上覆盖 RTL 支持

基本上,您可以在任何视图上设置强制布局文本/子视图的方向,也可以在清单的 application 标签中禁用 RTL 支持。android:layoutDirection="ltr"