我有一個帶有PopupWindow的片段。我用以下代碼啓動Popup:當外部點擊時關閉PopupWindow在
private PopupWindow createPopup;
private void initiateWindow(){
try {
LayoutInflater inflater = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.window_popup,
(ViewGroup) v.findViewById(R.id.popup_element));
DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
createPopup = new PopupWindow(layout, width/2 + width/4, height/3, true);
createPopup.showAtLocation(layout, Gravity.CENTER, 0, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
它運行得很好。我想在外部點擊時關閉窗口。這是一件很平常的事情,所以關於互聯網上的話題有很多教程和問題。問題是 - 他們都無法工作。
我試過使用createPopup.setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT)); createPopup.setOutsideTouchable(true); createPopup.setFocusable(true);
和類似answers。
我還檢查了是否可以使用此createPopup.setBackgroundDrawable(newColorDrawable(Color.BLACK));
填充純色彈出框後面的所有內容,以驗證我是否有錯誤的核心代碼,但它也沒有幫助 - 與彈出佈局無關的所有內容都保持可見狀態。
它會自動關閉時點擊它之外。不是沒有關閉? –
不,它不。 –
好的沒問題什麼彈出窗口包含什麼視圖textviews? –