在更改模拟器的方向时出错

时间:2012-06-28 09:30:14

标签: android android-layout

我是android新手。我创建了一个像

这样的main.xml文件
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="@android:color/white"
     android:paddingTop="5dp"
     android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android" >

        ....

    </RelativeLayout>

 </LinearLayout>

此文件位于我的res / layout / main.xml文件夹中。现在我创建一个名为layout-land的新文件夹,并在其中放置一个文件main.xml。即res / layout-land / main.xml,并将以下代码放入其中

<?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" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

这是我的班级

public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //---the two buttons are wired to the same event handler---
        Button btn_login = (Button)findViewById(R.id.btn_login );
        btn_login.setOnClickListener(btnListener);

         .....

    } //end of onCreate()

} //end of class MainActivity

但是现在当我运行项目时,项目以纵向模式打开,但是当我按ctrl + F11更改模拟器的方向时,我会收到错误。

enter image description here

这是肖像模式pic

enter image description here

为什么我在横向模式下出现此错误?我做错了什么?

由于

修改 -------------------------------------------------- -----------------

这是我的工作res / layout-land / main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:padding="1dip"
android:orientation="horizontal" > >

<LinearLayout
    android:orientation="vertical"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:paddingLeft="20dip"
    android:paddingRight="20dip" >

    <ImageView
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"       
        android:layout_marginBottom="10dp"
        android:src="@drawable/mazarslogo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="10dp"
        android:src="@drawable/ic_launcher" />

    <TableLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:stretchColumns="*" >

        <TableRow>

            <Button
                android:id="@+id/btn_login"                 
                android:text="@string/login"                
                android:textSize="12sp" 
                android:textStyle="bold" />

            <Button
                android:id="@+id/btn_aboutUs"                           
                android:text="@string/aboutUs"                  
                android:textSize="12sp" 
                android:textStyle="bold" />

        </TableRow>

        <TableRow>
             <Button
                android:id="@+id/btn_contactUs"                 
                android:text="@string/contactUs"            
                android:textSize="12sp" 
                android:textStyle="bold" />

            <Button
                android:id="@+id/btn_exit"                  
                android:text="@string/exit"         
                android:textSize="12sp" 
                android:textStyle="bold" />
        </TableRow>
    </TableLayout>        
</LinearLayout>  

1 个答案:

答案 0 :(得分:2)

首先要记住xml应该是相同的数据,无论是imageview,按钮还是布局,对于potrait和lancaspe布局的布局,id也应该相同,你需要在活动中添加以下内容

android:configChanges="keyboardHidden|orientation"