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 在真实设备上看起来很奇怪,在模拟器上看起来很完美的主要内容,如果未能解决你的问题,请参考以下文章
GridLayout 和 CardView 无法在所有设备上完美运行
CMMotionManager:设备校准在真实设备上不起作用