2012-03-22 104 views
4

我爲一個活動指定了兩個單獨的佈局xml文件,一個用於res/layout文件夾中的肖像,另一個用於res/layout-land文件夾中的Landscape。我的實際問題是,當我在肖像模式下啓動應用程序時,它從佈局中獲取用戶界面,並立即旋轉我的手機,它不需要從layout-land文件夾獲取xml,它需要從佈局文件夾使用ui,如果我以橫向模式啓動應用程序,從layout-land文件夾中獲取xml,並立即將我的肖像旋轉到肖像模式,它從layout-land ui不會更改爲肖像ui。爲縱向和橫向定義了不同的佈局?

任何好友都可以告訴我最新的問題是否有任何需要的設置幫助我解決這個問題。

在此先感謝。

this is my landscape ui xml 

     <?xml version="1.0" encoding="utf-8"?> 
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/widget57" 
     android:layout_width="400dp" 
     android:layout_height="400dp" 
     android:layout_gravity="center|center_vertical" 
     android:layout_marginTop="30dp" 
     android:orientation="vertical" > 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="40dp" > 

      <TextView 
       android:id="@+id/txtName" 
       android:layout_width="90dp" 
       android:text="@string/UserName" /> 

      <EditText 
       android:id="@+id/edName" 
       android:imeOptions="actionNext|actionDone" 
       android:paddingRight="10dp" 
       android:singleLine="true" 
       android:width="240dp" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/txtPass" 
       android:layout_width="90dp" 
       android:text="@string/PassWord" /> 

      <EditText 
       android:id="@+id/edPass" 
       android:imeOptions="actionGo" 
       android:paddingRight="10dp" 
       android:password="true" 
       android:singleLine="true" 
       android:width="240dp" /> 
     </TableRow> 

     <LinearLayout 
      android:id="@+id/widget57" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center" 
      android:orientation="vertical" > 

      <Button 
       android:id="@+id/btnLogin" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="10dp" 
       android:text="@string/btn_GO" 
       android:textSize="19sp" > 
      </Button> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="30dp" 
       android:text="CoinOp Solutions" 
       android:textSize="30sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="10dp" 
       android:text="Version 0.1" /> 
     </LinearLayout> 


    </TableLayout> 

    this is my Portrait ui 

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

     <TextView 
      android:id="@+id/txt_Required" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:text="" 
      android:textColor="#ffff0000" > 
     </TextView> 

     <TextView 
      android:id="@+id/txtName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:text="@string/UserName" > 
     </TextView> 

     <EditText 
      android:id="@+id/edName" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:imeOptions="actionNext|actionDone" 
      android:singleLine="true" 
      android:textSize="18sp" > 
     </EditText> 

     <TextView 
      android:id="@+id/txtPass" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="@string/PassWord" > 
     </TextView> 

     <EditText 
      android:id="@+id/edPass" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:imeOptions="actionGo" 
      android:maxLines="1" 
      android:password="true" 
      android:singleLine="true" 
      android:textSize="18sp" > 
     </EditText> 

     <LinearLayout 
      android:id="@+id/widget57" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center" 
      android:orientation="vertical" > 

      <Button 
       android:id="@+id/btnLogin" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="10dp" 
       android:text="@string/btn_GO" 
       android:textSize="19sp" > 
      </Button> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="30dp" 
       android:text="CoinOp Solutions" 
       android:textSize="30sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="10dp" 
       android:text="Version 0.1" /> 
     </LinearLayout> 

    </LinearLayout> 

我的清單文件

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="8" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:debuggable="true" 
     android:icon="@drawable/coinop" 
     android:label="@string/app_name" 
     android:theme="@style/CustomTheme" > 
     <activity 
      android:name=".LoginActivity" 
      android:configChanges="orientation" 
      android:label="@string/app_name" 
      android:windowSoftInputMode="stateVisible|adjustPan" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".ShowDbList" 
      android:configChanges="orientation" 
      android:label="@string/app_name" 
      android:windowSoftInputMode="adjustPan" > 
     </activity> 
     <activity 
      android:name=".Menu" 
      android:configChanges="orientation" 
      android:label="@string/app_name" 
      android:windowSoftInputMode="adjustPan" > 
     </activity> 
+1

請顯示manifest.xml文件。 – 2012-03-22 10:21:58

+0

我添加了我的manifest.xml文件 – 2012-03-22 10:27:32

回答

7

你在你的清單中有android:configChanges="orientation"。根據docconfigChanges包含您將自己手動處理的操作列表。

如果您刪除了android:configChanges="orientation",則旋轉手機時佈局將發生變化。否則,你應該自己處理它。

+0

Thanku現在它可以正常工作 – 2012-03-22 10:46:10

+0

沒問題:]:] – 2012-03-22 11:22:08

2

不知道這是否會有所幫助,但你可以嘗試(如果u沒有的話):

  1. 在使用的佈局,再覆蓋onConfigurationChanged和的setContentView活動。
  2. 刪除機器人:configChanges = 「方向」 爲使用該佈局
1

你應該嘗試添加活動:在

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 

// Checks the orientation of the screen 
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
    Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
} 

} 並設置佈局manualy通過的setContentView(..)活動。 希望這會有所幫助。 查看更多: http://developer.android.com/guide/topics/resources/runtime-changes.html

相關問題