2012-02-23 71 views
1

Layout在手机上看起来和预期的一样,在模拟器上看起来不同。我正在使用SDK API 10(Android 2.3)。测试手机是Android 2.3.3(Cyanogen Mod 7)的Motorola Milestone。AppWidget在模拟器和手机上看起来不同 - 转移查看内容

SDK布局预览呈现像仿真器一样的预览。

下图显示了在右侧(通过电话呈现)和在左侧(SDK API 10,模拟器和预览)的意外呈现的预期呈现。

shifted View

什么是差异的原因,如何解决?删除边距和填充(通过将其设置为0dp TextView1)没有帮助。

主要布局(父)

<?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> 

回答

1

相信这是由具有不同纵横比不同的屏幕引起的。由于手机具有4x4的单元格,而不管物理屏幕的大小如何,每个单元格必须更宽或更窄以适合连续4个。使用DP可以处理密度,但是多或少呈正方形的屏幕仍然需要细胞或多或少为正方形。这意味着每个单元格的DP数量会有所不同,并导致您的视图在不同设备上看起来不一样。

我发现的唯一解决方案是让布局尽可能灵活。

相关问题