我在相对布局中创建gui,并且我使用相对布局的原因是,我在屏幕中间使用假视图将所有其他对象正确对齐在屏幕中心。但我的手机上的输出完全不同,而且完全伸展开来。
我的问题是,中间的黑线应该只有1dp的高度,在我的设备上仍然显示为50dp的高度。在汇率中间以及折扣率($)以上也存在巨大差距。模拟器中没有这样的问题。整个屏幕分为两部分,下部和上部,中间有间隙。
我正在使用nexus 4运行stock rom 4.4.2来测试我的应用程序。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="#FFFFE0">
<View android:id="@+id/fakeView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/carat"
android:layout_marginTop="10dp"
android:layout_below="@+id/cut3"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/fakeView"
android:layout_marginRight="20dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/price"
android:layout_above="@+id/caratrs"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/fakeView"
android:layout_marginRight="20dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/list"
android:layout_marginRight="20dp"
android:layout_below="@+id/carat"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/fakeView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/total"
android:layout_marginRight="20dp"
android:layout_above="@+id/calculate"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/fakeView" />
<Spinner
android:drawSelectorOnTop="true"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/shape2"
android:layout_toLeftOf="@+id/color"
android:layout_alignLeft="@+id/cut3" />
<Spinner
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/cut3"
android:layout_below="@+id/shape2"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/fakeView"
android:layout_marginLeft="20dp"
/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/color"
android:layout_above="@+id/cut3"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/fakeView"
android:layout_marginRight="20dp" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/clarity"
android:layout_below="@+id/shape2"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/shape2"
android:layout_marginRight="20dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/discount"
android:layout_marginRight="20dp"
android:layout_below="@+id/list"
android:layout_toRightOf="@+id/fakeView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/converter"
android:layout_marginRight="20dp"
android:layout_below="@+id/discount"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/fakeView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate"
android:id="@+id/calculate"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/black"
android:layout_below="@+id/converter"
android:layout_marginTop="20dp"
android:layout_alignParentLeft="true"
android:id="@+id/view"
android:layout_above="@+id/textView5" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/discamt"
android:layout_below="@+id/view"
android:layout_above="@+id/price"
android:layout_alignLeft="@+id/fakeView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:layout_marginRight="20dp"
android:id="@+id/caratrs"
android:layout_above="@+id/total"
android:layout_toRightOf="@+id/fakeView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rap Price"
android:id="@+id/textView2"
android:layout_above="@+id/discount"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Discount(%)"
android:id="@+id/textView3"
android:layout_above="@+id/converter"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Exchange Rate"
android:id="@+id/textView4"
android:layout_alignBottom="@+id/converter"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Discount Amt($)"
android:id="@+id/textView5"
android:layout_above="@+id/price"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PPC($)"
android:id="@+id/textView6"
android:layout_above="@+id/caratrs"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ppcrs"
android:id="@+id/textView7"
android:layout_above="@+id/total"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/Rs"
android:id="@+id/textView8"
android:layout_above="@+id/calculate"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Carat :"
android:id="@+id/textView9"
android:layout_alignBottom="@+id/carat"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"/>
</RelativeLayout>
答案 0 :(得分:1)
在黑色视图中删除
android:layout_above="@+id/textView5"
您将获得以下结果:
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/black"
android:layout_below="@+id/converter"
android:layout_marginTop="20dp"
android:layout_alignParentLeft="true"
android:id="@+id/view" />
您已将视图锚定到转换器
所以你不需要额外的锚。
答案 1 :(得分:0)
我强烈建议你不要使用假视图,从截图中,最好使用linearlayout在屏幕上保留空白,并且每个空白你可以使用相对布局,这样,这种布局看起来很好所有设备