Android GUI无法在相对布局中正确显示

时间:2014-05-12 07:43:31

标签: android relativelayout

我在相对布局中创建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>

Here is the screen shot

2 个答案:

答案 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在屏幕上保留空白,并且每个空白你可以使用相对布局,这样,这种布局看起来很好所有设备