微调器的android屏幕方向处理

时间:2012-01-12 04:43:46

标签: android spinner screen-orientation

我有一个活动,其中有一个微调器。因为对于纵向和横向模式,我有不同的布局,所以我在onConfigurationChanged方法

中更改布局
@Override
    public void onConfigurationChanged(Configuration conf) {
        super.onConfigurationChanged(conf);
        setContentView(R.layout.layout);
        initUI();
    } 

但问题是当我改变方向时,我的微调器被重新创建,所以如果微调器在纵向模式下打开它在横向模式下关闭。我的要求是:如果它在任何模式下打开,它应该在方向改变后打开你可以告诉我如何处理这种情况。

3 个答案:

答案 0 :(得分:0)

尝试微调器的performClick()方法

答案 1 :(得分:0)

要停止重新创建Spinner,可以在清单文件中添加它

<activity android:name=".Activity_name"
          android:configChanges="orientation|keyboardHidden">

但是通过添加此设置,您在旋转设备时不会自动更改布局,因此您必须像这样手动管理,

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            setContentView(R.layout.login_landscape);
        }
        else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            setContentView(R.layout.login);         
        }
    }

有关详情,请查看我的回答here

答案 2 :(得分:0)

一旦方向改变,就会调用destroy方法并再次重新创建活动。为避免销毁方法调用,您需要在清单文件中添加以下代码。但在这种情况下,只能使用一种布局,如果你想要重新放置你的内容,你需要动态地进行。

android:configChanges="orientation|keyboardHidden"