2013-07-17 32 views
0

佈局圖的佈局不同的看法我的計算器程序看起來像這樣
enter image description here模擬器輸出針對Android

但是當我運行我的程序,它看起來像這樣

enter image description here

爲什麼這發生?

這是佈局文件代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/button0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:text="@string/button_0" 
     android:onClick="onClkBn0" /> 

    <Button 
     android:id="@+id/button_dot" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button0" 
     android:layout_alignParentBottom="true" 
     android:layout_toRightOf="@+id/button0" 
     android:text="@string/button_dot" 
     android:onClick="onClkBnDot"/> 

    <Button 
     android:id="@+id/button_res" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button0" 
     android:layout_alignParentBottom="true" 
     android:layout_toRightOf="@+id/button_dot" 
     android:text="@string/button_res" 
     android:onClick="onClkBnRes"/> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_above="@+id/button0" 
     android:text="@string/button_1" 
     android:onClick="onClkBn1"/> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button1" 
     android:layout_alignBottom="@+id/button1" 
     android:layout_toRightOf="@+id/button1" 
     android:layout_above="@+id/button_dot" 
     android:text="@string/button_2" 
     android:onClick="onClkBn2"/> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/button2" 
     android:layout_toRightOf="@+id/button2" 
     android:layout_above="@+id/button_res" 
     android:text="@string/button_3" 
     android:onClick="onClkBn3"/> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button1" 
     android:layout_alignLeft="@+id/button1" 
     android:text="@string/button_4" 
     android:onClick="onClkBn4"/> 

    <Button 
     android:id="@+id/button5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/button4" 
     android:layout_alignLeft="@+id/button2" 
     android:text="@string/button_5" 
     android:onClick="onClkBn5"/> 

    <Button 
     android:id="@+id/button6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/button5" 
     android:layout_alignLeft="@+id/button3" 
     android:text="@string/button_6" 
     android:onClick="onClkBn6"/> 

    <Button 
     android:id="@+id/button7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button4" 
     android:layout_alignLeft="@+id/button4" 
     android:text="@string/button_7" 
     android:onClick="onClkBn7"/> 

    <Button 
     android:id="@+id/button8" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button7" 
     android:layout_alignBottom="@+id/button7" 
     android:layout_toRightOf="@+id/button4" 
     android:text="@string/button_8" 
     android:onClick="onClkBn8"/> 

    <Button 
     android:id="@+id/button9" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button6" 
     android:layout_alignLeft="@+id/button6" 
     android:text="@string/button_9" 
     android:onClick="onClkBn9"/> 

    <Button 
     android:id="@+id/button_plus" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button_res" 
     android:layout_alignBottom="@+id/button_res" 
     android:layout_toRightOf="@+id/button_res" 
     android:text="@string/button_plus" 
     android:onClick="onClkBnPlus"/> 

    <Button 
     android:id="@+id/button_minus" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button_plus" 
     android:layout_alignLeft="@+id/button_plus" 
     android:text="@string/button_minus" 
     android:onClick="onClkBnMinus"/> 

    <Button 
     android:id="@+id/button_mul" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button_minus" 
     android:layout_below="@+id/button9" 
     android:text="@string/button_mult" 
     android:onClick="onClkBnMult"/> 

    <Button 
     android:id="@+id/button_div" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/button9" 
     android:layout_alignLeft="@+id/button_mul" 
     android:text="@string/button_div" 
     android:onClick="onClkBnDiv"/> 

    <Button 
     android:id="@+id/button_can" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/button_div" 
     android:layout_centerVertical="true" 
     android:text="@string/button_cancel" 
     android:onClick="onClkBnCan"/> 

    <TextView 
     android:id="@+id/mantissa" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button_can" 
     android:layout_alignParentLeft="true" 
     android:gravity="right" 
     android:text="@string/mantissa_default" 
     android:textIsSelectable="true" 
     android:textSize="30.0sp" /> 

    <Button 
     android:id="@+id/button_off" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/mantissa" 
     android:layout_above = "@+id/button9" 
     android:layout_alignLeft="@+id/button9" 
     android:layout_toRightOf="@+id/button_can" 
     android:onClick="onClkBnOff" 
     android:text="@string/button_off" /> 

</RelativeLayout> 
+0

您可以檢查如何更廣泛的模擬器的屏幕和設備屏幕?我認爲那裏有寬度的差異。你應該檢查一下。 –

+0

我只在模擬器 – user13267

+0

上做這件事,區別在於模擬器屏幕和設計視圖之間;它看起來像我希望它在設計視圖上看起來,但在模擬器輸出上看起來不同 – user13267

回答

2

你的模擬器是做什麼你問。此代碼:

android:layout_centerVertical="true" 

將「c」按鈕垂直放在視圖中間。那麼你的尾數視圖坐在因爲如此,觀點之上:

android:layout_above="@+id/button_can" 

您的關閉按鈕被迫從尾數觀點一直延伸到,因爲這些線路的button_9:

android:layout_below="@+id/mantissa" 
android:layout_above = "@+id/button9" 

這裏是一個解決方案,應爲你工作:

<Button 
    android:id="@+id/button_can" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@id/button_div" 
    android:layout_above="@id/button_div" 
    android:text="@string/button_cancel" 
    android:onClick="onClkBnCan"/> 

<TextView 
    android:id="@+id/mantissa" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@id/button_can" 
    android:layout_alignParentLeft="true" 
    android:gravity="right" 
    android:text="@string/mantissa_default" 
    android:textIsSelectable="true" 
    android:textSize="30.0sp" /> 

<Button 
    android:id="@+id/button_off" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above = "@id/button9" 
    android:layout_alignLeft="@id/button9" 
    android:layout_toRightOf="@id/button_can" 
    android:onClick="onClkBnOff" 
    android:text="@string/button_off" /> 

此外,你應該只在第一次使用該標籤的使用+在字符串中像"@+id/button9"。後續的參考將是"@id/button9"

1

我認爲你應該更好地使用幾個LinearLayout來獲得你想要的方面。

感謝android:layout_weight您將能夠在幾種屏幕尺寸和密度上具有相同的佈局方面。

下面是一個代碼示例顯示你想要什麼,你所希望的方式在多個屏幕尺寸/設備密度:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/mantissa" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:gravity="right" 
    android:text="@string/mantissa_default" 
    android:textIsSelectable="true" 
    android:textSize="30.0sp" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@+id/mantissa" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.25" 
     android:orientation="horizontal" > 

     <View 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" /> 

     <View 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" /> 

     <Button 
      android:id="@+id/button_off" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnOff" 
      android:text="@string/button_off" /> 

     <Button 
      android:id="@+id/button_can" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnCan" 
      android:text="@string/button_cancel" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.25" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/button7" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn7" 
      android:text="@string/button_7" /> 

     <Button 
      android:id="@+id/button8" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn8" 
      android:text="@string/button_8" /> 

     <Button 
      android:id="@+id/button9" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn9" 
      android:text="@string/button_9" /> 

     <Button 
      android:id="@+id/button_div" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnDiv" 
      android:text="@string/button_div" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.25" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/button4" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn4" 
      android:text="@string/button_4" /> 

     <Button 
      android:id="@+id/button5" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn5" 
      android:text="@string/button_5" /> 

     <Button 
      android:id="@+id/button6" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn6" 
      android:text="@string/button_6" /> 

     <Button 
      android:id="@+id/button_mul" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnMult" 
      android:text="@string/button_mult" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.25" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_above="@+id/button0" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn1" 
      android:text="@string/button_1" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_above="@+id/button_dot" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn2" 
      android:text="@string/button_2" /> 

     <Button 
      android:id="@+id/button3" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn3" 
      android:text="@string/button_3" /> 

     <Button 
      android:id="@+id/button_minus" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnMinus" 
      android:text="@string/button_minus" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.25" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/button0" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBn0" 
      android:text="@string/button_0"/> 

     <Button 
      android:id="@+id/button_dot" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnDot" 
      android:text="@string/button_dot" /> 

     <Button 
      android:id="@+id/button_res" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnRes" 
      android:text="@string/button_res"/> 

     <Button 
      android:id="@+id/button_plus" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.25" 
      android:onClick="onClkBnPlus" 
      android:text="@string/button_plus" /> 
    </LinearLayout> 
</LinearLayout> 
</RelativeLayout>