Layout
在手机上看起来和预期的一样,在模拟器上看起来不一样。我正在使用 SDK API 10 (Android 2.3)。测试手机是装有 Android 2.3.3 (Cyanogen Mod 7) 的 Motorola Milestone。
SDK 布局预览像 Emulator 一样呈现预览。
下图显示了右侧的预期呈现(由手机呈现)和左侧的意外呈现(SDK API 10、模拟器和预览)。
造成差异的原因是什么,我该如何解决?删除边距和填充(通过在 TextView1
将其设置为 0dp)没有帮助。
主布局(父级)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/test_bg_red"
android:padding="20dp"
>
<include
android:layout_width="fill_parent"
android:layout_height="26dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
layout="@layout/test_child" />
/>
<include
android:layout_width="fill_parent"
android:layout_height="26dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
layout="@layout/test_child" />
</RelativeLayout>
子布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="26dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="4dp"
android:gravity="top"
android:includeFontPadding="false"
android:text="42"
android:textSize="32dp"
android:textStyle="bold" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_toRightOf="@+id/textView1"
android:includeFontPadding="false"
android:text="TextView2"
android:textSize="12dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_alignParentTop="true"
android:includeFontPadding="false"
android:text="TextView3"
android:textSize="10dp" />
</RelativeLayout>
最佳答案
我认为这是由具有不同纵横比的不同屏幕造成的。由于无论物理屏幕尺寸如何,手机都有 4x4 个单元格,因此每个单元格必须更宽或更窄才能连续放置 4 个。使用 DP 会处理密度,但或多或少呈正方形的屏幕仍将要求单元格或多或少呈正方形。这意味着每个单元格的 DP 数量会有所不同,并导致您的 View 在不同设备上看起来不一样。
我找到的唯一解决方案是让您的布局尽可能灵活。
关于android - AppWidget 在模拟器和手机上看起来不同 - 移动查看内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9417410/