android更改方向删除按钮

时间:2014-05-13 15:31:43

标签: java android android-layout screen-orientation android-orientation

我已在活动上设置android:configChanges="orientation|screenSize",以便在每次定向更改时停止重新启动活动。现在这个工作正常,但我认为它正在停止使用正确的布局。

E.G。我有不同的布局文件夹,用于不同的屏幕方向和大小。因此,如果我在portrait中启动活动,当我将方向更改为landscape时,它就不会使用我的横向布局。

此外,如果我在landscape中开始活动,当我将方向更改为portrait时,它不会使用我的纵向布局。

基本上我希望应用程序执行的操作不是在方向更改后再次启动活动,而是在方向更改时使用正确的布局!

我以为我可以使用onConfigurationChanged方法明确更改代码中的布局?

感谢任何输入

3 个答案:

答案 0 :(得分:1)

当您使用android:configChanges="orientation|screenSize"时,这告诉Android您将自己维护这些更改 - 这意味着您必须更改布局(setContentView)并手动初始化它(设置控件的值 - EditTexts ,纺纱等。)

答案 1 :(得分:0)

所以我最终做的是将android:configChanges="orientation|screenSize"保留在清单文件中。这样做可以阻止我使用正确的布局文件夹进行纵向和横向处理。

要解决此问题,我会覆盖onConfigurationChange方法,以便在方向更改后设置活动按预期运行所需的正确信息。下面是我用过的代码:

@Override
public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.hearing_test);
    //Any other information needed for the activity to work correctly
}

感谢@mihail提供的帮助和指导,帮助我解决了问题的根源。

答案 2 :(得分:-1)

这正是为什么 {@ 1}}被销毁和重新创建:应用新资源。
如果您的纵向和横向模式有不同的布局,请不要使用Activity