Android:如何防止方向改变后活动重新加载?

Android:如何防止方向改变后活动重新加载?,android,image,button,orientation,screen-orientation,Android,Image,Button,Orientation,Screen Orientation,我在互联网上寻找如何防止活动在方向改变时重新加载,我做了建议,它帮助我解决了我的问题。但随后出现了一个新问题。在我的活动中,我有一些不可见的图片和按钮,如果满足条件,它们会出现。但现在,当我旋转手机时,图片和按钮会出现,尽管不符合条件。有没有办法防止这种情况发生 为了停止重新加载活动,我在java文件中添加了以下代码: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigu

我在互联网上寻找如何防止活动在方向改变时重新加载,我做了建议,它帮助我解决了我的问题。但随后出现了一个新问题。在我的活动中,我有一些不可见的图片和按钮,如果满足条件,它们会出现。但现在,当我旋转手机时,图片和按钮会出现,尽管不符合条件。有没有办法防止这种情况发生

为了停止重新加载活动,我在java文件中添加了以下代码:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
  super.onConfigurationChanged(newConfig);
  setContentView(R.layout.activity_get_variants);
}
在清单文件中:

 android:configChanges="keyboardHidden|orientation|screenSize"

您的代码需要进行一些更改:

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    switch(newConfig.orientation) {
        case Configuration.ORIENTATION_PORTRAIT:
            // do your code
            break;
        case Configuration.ORIENTATION_LANDSCAPE:
            // show images and button here
            break;
    }
}

答案已经回答了。希望这会有帮助。你不要再设置内容视图了,它会再次更改布局,我在下面提到过,如果你尝试,它会工作得很好。你正在重新设置内容视图,这就是问题所在。在你的配置中添加UIMode changes android:configChanges=“screenSize | orientation | keyboardHidden | UIMode”。我希望ir对你有用,你可以用碎片代替。请检查,android:configChanges=“keyboardHidden | orientation | screenSize”是一种黑客行为,除非您真正理解原因,否则不应使用它。这里有太多的讨论,但是有很多文章描述了原因。甚至谷歌也说不要使用它。问题在于,您没有修复代码中的bug,您已经隐藏了它们,而且这些bug还有很多其他的发生方式。正确的答案是了解活动生命周期并正确编写回调方法,以便修复bug。否则你将不会成功。嗨,谢谢你的回答,但是当屏幕处于横向时,这难道不只是显示按钮吗?在第一种情况下,你的代码是指条件?根据条件在代码中做你想做的任何事情。