layout-land xml文件不能与onConfigurationChanged回调一起使用

时间:2011-03-17 08:28:54

标签: android layout onconfigurationchanged

我有纵向和横向模式的不同布局,我还需要覆盖onConfigurationChanged()回调。但问题是,当我将手机方向更改为横向时,我的横向布局不起作用。

有人可以告诉我这是onConfigurationChanged回拨问题或其他原因导致的吗?

任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:10)

  

我还需要覆盖onConfigurationChanged()回调

为什么?

  

但问题是当我将手机方向更改为横向时,我的横向布局不起作用。

我猜测“不起作用”意味着横向布局不会生效。鉴于您所做的事情,这是预期的行为。

要解决此问题,最好删除android:configChanges="keyboardHidden|orientation"。放入该属性应该作为最后的手段,通常用于没有单独的纵向布局文件和横向布局文件的活动。

答案 1 :(得分:2)

我相信它会最终帮助你......

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
    Toast.makeText(this, "Helloo", Toast.LENGTH_SHORT).show();
}
enter code here
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);

    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
}

@Override
public Object onRetainNonConfigurationInstance() {
    // TODO Auto-generated method stub
    return super.onRetainNonConfigurationInstance();
}

}

并在清单文件中添加此行。 机器人:configChanges = “keyboardHidden |取向”