我在我的应用程序中遇到了奇怪的问题。我在这里问的主要问题。问题是android:configChanges="keyboardHidden|orientation"
在我的代码中不起作用。
所以我找到了通过@Override onConfigurationChanged()
我的代码中的方法管理它的解决方案来管理方向。但问题并没有得到妥善解决。
当前的问题是onConfigurationChanged()
当我们将方向横向更改为纵向时调用两次。
如果我们将手机纵向更改为横向,它的变化和工作但现在当用户将手机横向移动到纵向 时,onConfigurationChanged()
将调用并返回相同的方向状态,并且在第二次调用中它将返回纵向。
代码 :
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
Log.e("On Config Change", "LANDSCAPE");
Toast.makeText(getApplicationContext(), "L", Toast.LENGTH_LONG)
.show();
} else
{
Log.e("On Config Change", "PORTRAIT");
Toast.makeText(getApplicationContext(), "P", Toast.LENGTH_LONG)
.show();
}
}
日志
first mode its port mode , so change in land mode
02-28 12:10:06.274: E/On Config Change(540): LANDSCAPE
02-28 12:10:14.154: E/On Config Change(540): LANDSCAPE
// here after changed the land mode try to chage in port mode then its calling two times as you can see as per the log
02-28 12:10:14.593: E/On Config Change(540): PORTRAIT
02-28 12:11:39.524: E/On Config Change(540): LANDSCAPE
同一个问题的另一个查询>>
当我们改变方向时(调用时),它将终止当前活动onConfigurationChanged
。所以根据我之前的问题,我在不同的文件夹中有两个布局。因此,当我更改屏幕活动时,将删除所有数据。因此,无论如何,当用户更改手机方向时,我如何保存该数据以向用户显示。