android OS 不接受横向模式设计的排列变化
android OS not accepting the landscape mode design on orintation changes
我的应用程序有横向和纵向模式。所以我为每种模式设计了两种布局。在清单文件中,我设置了以下代码。
android:configChanges="orientation"
它工作正常,但 activity 在每次方向改变时重新启动。所以我添加以下行以避免重新创建问题。
android:configChanges="keyboardHidden|orientation|screenSize"
现在activity没有重新制作也没有采用横向模式设计。
请帮我解决这个问题的朋友
我建议让应用程序在方向改变时重新创建自己。
如果您需要保留状态,则在调用 onSaveInstanceState 时存储信息。
/**
* On min or rotate save state info.
*
* @param bundle saved values
*/
public void onSaveInstanceState(Bundle bundle) {
bundle.putBoolean("SomeKey", someKeyValue);
super.onSaveInstanceState(bundle);
}
然后在onCreate
中恢复值
if (savedInstanceState != null) {
if (savedInstanceState.containsKey("SomeKey")) {
someKeyValue=
savedInstanceState.getBoolean("SomeKey");
}
}
使用 onConfigChanges: 是一个滑坡,在它不起作用之前效果很好。
每个 OS 版本的行为都会有所不同并变得更加复杂。
就我而言,我的应用程序在两个方向上都可以正常工作,这就是我所做的可能对您有所帮助,
use same code in public void onCreate(Bundle savedInstanceState) { // your code } and public void onConfigurationChanged(Configuration newConfig) { // your code }
并且在 AndroidManifest 文件中
像
一样使用
<activity
android:name="YourActivity"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="stateHidden" />
就是这样。如果有任何问题 post 你的评论
我的应用程序有横向和纵向模式。所以我为每种模式设计了两种布局。在清单文件中,我设置了以下代码。
android:configChanges="orientation"
它工作正常,但 activity 在每次方向改变时重新启动。所以我添加以下行以避免重新创建问题。
android:configChanges="keyboardHidden|orientation|screenSize"
现在activity没有重新制作也没有采用横向模式设计。
请帮我解决这个问题的朋友
我建议让应用程序在方向改变时重新创建自己。
如果您需要保留状态,则在调用 onSaveInstanceState 时存储信息。
/**
* On min or rotate save state info.
*
* @param bundle saved values
*/
public void onSaveInstanceState(Bundle bundle) {
bundle.putBoolean("SomeKey", someKeyValue);
super.onSaveInstanceState(bundle);
}
然后在onCreate
中恢复值 if (savedInstanceState != null) {
if (savedInstanceState.containsKey("SomeKey")) {
someKeyValue=
savedInstanceState.getBoolean("SomeKey");
}
}
使用 onConfigChanges: 是一个滑坡,在它不起作用之前效果很好。 每个 OS 版本的行为都会有所不同并变得更加复杂。
就我而言,我的应用程序在两个方向上都可以正常工作,这就是我所做的可能对您有所帮助,
use same code in public void onCreate(Bundle savedInstanceState) { // your code } and public void onConfigurationChanged(Configuration newConfig) { // your code }
并且在 AndroidManifest 文件中
像
一样使用 <activity
android:name="YourActivity"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="stateHidden" />
就是这样。如果有任何问题 post 你的评论