我有一项活动,它会使列表视图膨胀。在列表项上单击一个对话框打开(它在相应的列表适配器中处理。)在方向更改时,显示对话框(如果有)消失(如预期的那样)。我想要的是显示对话框不要忽略方向更改和我不知道如何干净利落地处理它。
答案 0 :(得分:1)
当您旋转手机时,您的活动实际上已被销毁并重新创建。这包括您的对话框。是的,它很可能是历史上最愚蠢的设计决定,但我们坚持不懈。有两种方法可以解决它:
1)关闭此“有用”功能。如果你没有不同的横向和肖像布局,那就是我的建议。将android:configChange =“orientation | resize”添加到清单中的活动。
2)实现onSaveInstanceState / onRestoreInstanceState并有一个变量,表明您是否需要重新创建并重新启动对话框。
答案 1 :(得分:0)
您可以在androidManifest.xml文件中禁用方向更改
<activity
android:name="com.example.deneme"
android:label="@string/app_name"
android:launchMode="singleTop"
*************android:screenOrientation="landscape" >*******************
</activity>
OR
你可以在对话框显示之前完成
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
对话框显示后
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);