Android新手:在横向模式和纵向模式之间切换

时间:2011-07-01 08:45:06

标签: android android-layout android-emulator android-widget

我按照android开发者tutorial创建了一个简单的标签布局。教程中的一切都很好,我得到了标签布局。

在默认的纵向模式下,标签位于屏幕顶部,但是当更改为横向模式时,顶部的标签会使屏幕看起来很奇怪,所以,我想找到当模拟器更改为横向模式时,屏幕左侧的标签垂直

我不确定这样做的正确方法是什么?我指的是为纵向模式和横向模式定义不同标签布局的正确方法。有人可以提出一些建议吗?

3 个答案:

答案 0 :(得分:0)

创建两个布局文件,一个用于纵向,一个用于横向。分别放置这些layout-port和layout-land。如果要保存屏幕状态,则必须处理屏幕方向

答案 1 :(得分:0)

您需要为活动设置2种不同的布局,一种是纵向(“普通”)模式,一种是横向模式。这意味着不使用TabActivity。

landscape_tab.xml放在res文件夹(res/layout-land

内的layout-land文件夹中

portrait_tab.xml放在res文件夹(res/layout-port

内的layout-port文件夹中

OfCourse你必须手动在res目录中创建layout-landlayout-port文件夹

您的解决方案就在这里 android:orientation="vertical" does not work for TabWidget

欢呼:)

答案 2 :(得分:0)

在AndroidMainfest.xml上添加

<activity android:name=".MyActivity"
    android:configChanges="orientation" >
</activity>

当应用更改方向时,请覆盖MyActivity.java

上的方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            // do what you want
    }
    else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            // do what the other thing you want
    }

}

来自:http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

提示:当方向更改时,如果您不添加android:configChanges,则会重新启动活动。