gpt4 book ai didi

android - 手机旋转时不出现横向布局

转载 作者:行者123 更新时间:2023-11-29 17:54:03 24 4
gpt4 key购买 nike

我正在尝试为我的 Android 应用程序创建横向布局。因此,我创建了一个名为 layout-land 的单独文件夹,并在其中创建了横向模式的 main.xml

但是当我旋转手机时,它没有出现横向布局,而是显示这样的消息,

Unfortunately Nasa Daily Image app has stopped

当我将 configChanges="orientation|screensize" 属性放入 Activity 标签中时,它会显示纵向布局,即使我旋转了手机。 (这对我来说很清楚,因为 Activity 不会在运行时重新启动)。

接下来,我尝试了 configChanges="orientation"重写了 onConfigurationChanged 方法,如下所示,

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

if(newConfig.orientation== Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.main);
}else if(newConfig.orientation== Configuration.ORIENTATION_PORTRAIT){
setContentView(R.layout.main);
}
}

但我仍然收到错误消息。

所以我想显示横向布局。如何解决这个问题?

日志

12-31 12:04:02.367  16728-16728/com.nasa.nasadailyimageapp E/AndroidRuntime﹕ FATAL      EXCEPTION: main
java.lang.NullPointerException
at com.nasa.nasadailyimageapp.MainActivity.resetDisplay(MainActivity.java:104)
at com.nasa.nasadailyimageapp.MainActivity.access$100(MainActivity.java:22)
at com.nasa.nasadailyimageapp.MainActivity$2.run(MainActivity.java:150)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

Android 会在配置更改时自动从适当的文件夹中提取适当的资源,除非您声明您正在处理您已经完成的这些更改。从 list 和 onConfigurationChanged() 例程中删除 configChanges="orientation",它将起作用。

换句话说,通过声明 configChanges="orientation",您是在说“不,Android!我会自己处理加载方向更改。”我想这不是您想要的。

需要注意的另一件事是,当您让 Android 处理方向(或任何配置更改)时,它会销毁您当前的 Activity 并使用新配置的新资源重新创建它。所以一定要考虑到这一点(需要保存/恢复状态)。

关于android - 手机旋转时不出现横向布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com