Android 屏幕方向上的弹出窗口
我正在使用Android 屏幕方向上的弹出窗口,android,Android,我正在使用弹出窗口。我面临的一个问题是,当屏幕方向改变时,PopupWindow会被破坏 我需要它不应该破坏屏幕上的方向变化 我为这个活动设置了这个 <activity android:name=".MainPageActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" android:windo
弹出窗口
。我面临的一个问题是,当屏幕方向改变时,PopupWindow
会被破坏
我需要它不应该破坏屏幕上的方向变化
我为这个活动设置了这个
<activity
android:name=".MainPageActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我设置了Android
target=Android-13
,并在活动中进行了设置
android:configChanges=“方向|屏幕大小|键盘隐藏”
工作正常
谢谢。试着像PopupWindow那样展示一下
final View parent = findViewById(R.id.{id});
parent.post(new Runnable() {
@Override
public void run() {
mPopup.showAtLocation(parent, ...);
}
});
这种情况会发生,因为活动会在旋转更改时重新启动(重新创建)。要纠正这一点,当弹出窗口第一次出现时,设置一个全局标志,或者可以从任何地方看到的东西(甚至可能是一个复选框,它被选中了等等)。然后在
onCreate
方法中,检查是否已选中此标志(如果为(true)),然后重新显示弹出窗口。
final View parent = findViewById(R.id.{id});
parent.post(new Runnable() {
@Override
public void run() {
mPopup.showAtLocation(parent, ...);
}
});