GridLayout 在真实设备上看起来很奇怪,在模拟器上看起来很完美

Posted

技术标签:

【中文标题】GridLayout 在真实设备上看起来很奇怪,在模拟器上看起来很完美【英文标题】:GridLayout look strange on a real Device and perfect on emulator 【发布时间】:2019-09-24 01:09:28 【问题描述】:

我在安卓中设计了一个基本的计算器。 在我设计它时,我在 Emulator Pixel XL 设备(API 28,屏幕分辨率 1440x2560 560dpi)上对其进行了测试,并且运行良好。

“模拟器布局”

但是当我在华为荣耀 4C (android 6.0) 上安装该应用程序时,它看起来很搞笑。 《华为荣耀4c》

最低SdkVersion:21 目标SDK版本:28 我的设计代码:

<LinearLayout 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_
    android:layout_
    android:orientation="vertical"
    android:background="#ffeeeeee"
    tools:context=".MainActivity" >


    <LinearLayout
        android:layout_
        android:layout_
        android:background="#ffffffff">

        <TextView
            android:id="@+id/display"
            android:layout_
            android:layout_
            android:ems="10"
            android:textSize="30sp"
            android:gravity="end|bottom"
            />

    </LinearLayout>


    <GridLayout
        android:layout_
        android:layout_
        android:layout_margin="20dp"
        android:columnCount="4"
        android:rowCount="5">

        <Button
            android:id="@+id/btnClear"
            android:layout_
            android:layout_
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="C" />

        <Button
            android:id="@+id/btnDivid"
            android:layout_
            android:layout_
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="/" />

        <Button
            android:id="@+id/btnMultiplication"
            android:layout_
            android:layout_
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="2"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="X" />

        <Button
            android:id="@+id/btnDelete"
            android:layout_
            android:layout_
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="3"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="Delete" />

        <Button
            android:id="@+id/btn7"
            android:layout_
            android:layout_
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="7"
            android:text="7" />

        <Button
            android:id="@+id/btn8"
            android:layout_
            android:layout_
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="8"
            android:text="8" />

        <Button
            android:id="@+id/btn9"
            android:layout_
            android:layout_
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="2"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="9"
            android:text="9" />

        <Button
            android:id="@+id/btnMinus"
            android:layout_
            android:layout_
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="3"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="-" />

        <Button
            android:id="@+id/btn4"
            android:layout_
            android:layout_
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="4"
            android:text="4" />

        <Button
            android:id="@+id/btn5"
            android:layout_
            android:layout_
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="5"
            android:text="5" />

        <Button
            android:id="@+id/btn6"
            android:layout_
            android:layout_
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="2"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="6"
            android:text="6" />

        <Button
            android:id="@+id/btnPlus"
            android:layout_
            android:layout_
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="3"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:text="+" />

        <Button
            android:id="@+id/btn1"
            android:layout_
            android:layout_
            android:layout_row="3"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="1"
            android:text="1" />

        <Button
            android:id="@+id/btn2"
            android:layout_
            android:layout_
            android:layout_row="3"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="2"
            android:text="2" />

        <Button
            android:id="@+id/btn3"
            android:layout_
            android:layout_
            android:layout_row="3"
            android:layout_rowWeight="1"
            android:layout_column="2"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="3"
            android:text="3" />

        <Button
            android:id="@+id/btnEqual"
            android:layout_
            android:layout_
            android:layout_row="3"
            android:layout_rowSpan="2"
            android:layout_rowWeight="1"
            android:layout_column="3"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:background="@color/colorPrimaryDark"
            android:onClick="numberClicked"
            android:text="=" />

        <Button
            android:id="@+id/btn0"
            android:layout_
            android:layout_
            android:layout_row="4"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnSpan="2"
            android:layout_columnWeight="1"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="0"
            android:text="0" />

        <Button
            android:id="@+id/btnDot"
            android:layout_
            android:layout_
            android:layout_row="4"
            android:layout_rowWeight="1"
            android:layout_column="2"
            android:layout_columnWeight="2"
            android:layout_gravity="fill"
            android:onClick="numberClicked"
            android:tag="."
            android:text="." />


    </GridLayout>

</LinearLayout>

可能的原因是什么?

【问题讨论】:

targetSdkVersion 是什么 targetSdkVersion 为 28。 你有什么解决办法吗?我也面临同样的问题 【参考方案1】:

我认为这个明显的问题与属性 android:supportsRtl="true" 和您的设备/模拟器的不同 API 级别有关。 在应用标签中添加清单

<application
    android:name=".Application"
    android:supportsRtl="true">

如果设置为 true 并且 targetSdkVersion 设置为 17 或更高,否则为 false

在设备中卸载应用并清除项目,然后再次安装到真实设备。

如果它有效,请给我一个大拇指..继续编码:)

【讨论】:

您是否在其他手机上登记了 不,我没有在其他手机上查看

以上是关于GridLayout 在真实设备上看起来很奇怪,在模拟器上看起来很完美的主要内容,如果未能解决你的问题,请参考以下文章

android - 在某些设备上布局看起来很乱

GridLayout 和 CardView 无法在所有设备上完美运行

CMMotionManager:设备校准在真实设备上不起作用

iOS:iOS 9 上 iPad 的 TableViewCell 背景

命令行支持 KIF 以在真实设备上运行测试

AudioServicesPlaySystemSound 奇怪的行为