翻转模拟器不会将布局更改为 layout-land 中的布局

Posted

技术标签:

【中文标题】翻转模拟器不会将布局更改为 layout-land 中的布局【英文标题】:Flipping the emulator does not change the layout to the one present in layout-land 【发布时间】:2013-12-17 07:43:08 【问题描述】:

我的活动.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    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/textView1"
        android:layout_
        android:layout_
        android:layout_centerHorizontal="true"
        android:textSize="24sp"
        android:text="@string/first_last1" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_
        android:layout_
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="86dp"
        android:layout_marginTop="15dp"
        android:contentDescription="@string/first_last1"
        android:src="@drawable/johnvonneumann" />

    <ScrollView
        android:layout_
        android:layout_
        android:layout_below="@+id/imageView1" >

    <TextView
        android:id="@+id/textView2"
        android:layout_
        android:layout_
        android:paddingTop="16dp"
        android:text="@string/about_scientist1" 
        android:textSize="16sp"/>

    </ScrollView>
</RelativeLayout>

我的土地\activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    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/textView21"
        android:layout_
        android:layout_
        android:layout_centerHorizontal="true"
        android:textSize="24sp"
        android:text="@string/first_last2" />

    <ImageView
        android:id="@+id/imageView21"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView21"
        android:adjustViewBounds="true"
        android:contentDescription="@string/first_last2"
        android:scaleType="fitXY"
        android:src="@drawable/bruceschneier" />

    <ScrollView
        android:layout_below="@+id/textView21"
        android:layout_
        android:layout_
        android:layout_toRightOf="@+id/imageView21" >


    <TextView
        android:id="@+id/textView2"
        android:layout_
        android:layout_
        android:paddingLeft="16dp"
        android:text="@string/about_scientist2" 
        android:textSize="16sp"/>

    </ScrollView>
</RelativeLayout>

清单文件:

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="edu.assignment.scientists.MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

main_activity.java

package edu.assignment.scientists;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    


当我使用 ctrl-F11 翻转模拟器时,方向会改变,但布局不会。 它仍然只指向布局模式。 请帮忙。

【问题讨论】:

尝试在 Mainfest 中删除这一行`android:configChanges="orientation|keyboardHidden"` 我试过这个但没有帮助。 您能否确认您的横向 xml 的存储位置?在 res/land 文件夹中, res/layout/land 还是 res/layout-land ?它应该在最后一个。 仅在 res/layout-land 内。 coursera 学生不要浪费你的时间,这是模拟器中的一个错误,谷歌不会修复它:(code.google.com/p/android/issues/detail?id=13189 【参考方案1】:

我有同样的问题。正如 Amir Ismail 所说,4.4 模拟器中有一个错误。我下载了 4.3 模拟器并运行了完全相同的代码,并且运行良好。

【讨论】:

以上是关于翻转模拟器不会将布局更改为 layout-land 中的布局的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序不会更改为 RTL 语言

只有在将方向更改为横向并返回纵向后,纵向布局才能正确显示

设备方向更改时 xml 不切换

屏幕布局和旋转

android layout-land 和 screen-rotation 处理

如何将我的模拟器从纵向模式更改为横向模式? [复制]