2013-11-27 221 views
0

的Android LinearLayout中的變化,我使用下面的XML代碼片在API級別17屏幕旋轉

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:layout_gravity="center" > 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal" 
    android:padding="40dp" > 

    <EditText 
     android:id="@+id/etUsername" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10"    
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/tvUsername" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="User Name" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal"  
    android:padding="40dp" > 

    <EditText 
     android:id="@+id/etPassword" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textPassword" /> 

    <TextView 
     android:id="@+id/tvPassword" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Password" /> 
</LinearLayout> 

<Button 
    android:id="@+id/submitbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:background="@drawable/buttonpressing" 
    android:text="Submit" 

    /> 


<TextView 
    android:id="@+id/showresult" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_gravity="center" /> 

我希望我的TextView,EditText上和按鈕爲中心。在橫向視圖(水平)中,它們似乎居中,但在縱向(垂直)屏幕中,它們位於屏幕頂部的中央。 我該如何解決這個問題,不管這是什麼視圖,他們都留在屏幕中心?

回答

1

問題是你設置根佈局的高度,以「match_parent」

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:layout_gravity="center"> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal" 
    android:padding="40dp"> 

    <EditText 
     android:id="@+id/etUsername" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="text"></EditText> 

    <TextView 
     android:id="@+id/tvUsername" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="User Name" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal" 
    android:padding="40dp"> 

    <EditText 
     android:id="@+id/etPassword" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textPassword" /> 

    <TextView 
     android:id="@+id/tvPassword" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Password" /> 
</LinearLayout> 

<Button 
    android:id="@+id/submitbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="Submit" 
    /> 


<TextView 
    android:id="@+id/showresult" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_gravity="center" /> 
</LinearLayout>