У меня есть всплывающее окно, которое вызывается из прослушивателя в моем фрагменте. Перед тем, как он был вызван с помощью кнопки, нажмите и отобразится сразу. Тем не менее, после перемещения метода, который создает его для пользовательского прослушивателя, он больше не всплывает мгновенно. Но скорее, только после события клика или прокрутки происходит в любом месте экрана. Я предполагаю, что экран нужно обновить, чтобы показать всплывающее окно? Вот мой код Создание:всплывающее окно Android не отображается?
/***POP UP WINDOW CODE***/
PopupWindow popupMessage;
PopupWindow pw;
@SuppressLint("NewApi")
private void popupInit(){
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//Get screen dimensions to set the window size
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
final View layout = inflater.inflate(R.layout.add_interview, null, false);
// create a 300px width and 470px height PopupWindow
pw = new PopupWindow(layout, (int) (width*(0.8)), (int) (height*(0.8)), true);
// display the popup in the center
layout.post(new Runnable() {
public void run() {
pw.showAtLocation(layout, Gravity.CENTER, 0, 0);
pw.update(0, 0, pw.getWidth(), pw.getHeight());
}
});
}
Вы пробовали запустить его вне Runnable? –
Это сработало! Вы знаете, почему это может вызвать проблемы? – Will
Обычно я не работаю с Runnable, но я считаю, что они используются для задержки, и это может быть отсутствие обработчика. Вы пытаетесь отложить представление? –