如您所知,三星Galaxy系列的最新设备具有导航栏而非物理键,用户可以随时隐藏它。我在我的应用中发现了一个问题。当用户隐藏导航栏时,我的应用的指南PopupWindow
不会调整大小,也不会在Galaxy S8 +上填写导航栏所在的区域。这是我的MainActivity源代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
......
mRootLayout = findViewById(R.id.layout_main_root);
mRootLayout.post(new Runnable() {
@Override
public void run() {
if (!mSettings.getMainGuideSeen()) {
GuideWindow.open(MainActivity.this, R.layout.window_guide_main);
mSettings.setMainGuideSeen(true);
}
}
});
......
}
以下是我的GuideWindow
课程的源代码。
public class GuideWindow {
private static PopupWindow mPopupWindow;
private static boolean mIsGuideOn = false;
public static void open(Activity activity, int resId) {
View popupView = activity.getLayoutInflater().inflate(resId, null);
ImageButton closeButton = popupView.findViewById(R.id.button_guide_close);
closeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
close();
}
});
mPopupWindow = new PopupWindow(popupView, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
mPopupWindow.showAsDropDown(popupView);
mIsGuideOn = true;
}
public static void close() {
mPopupWindow.dismiss();
mPopupWindow = null;
mIsGuideOn = false;
}
public static boolean isGuideOn() {
return mIsGuideOn;
}
}
请告诉我有什么问题。提前谢谢。