问题描述
//创建layoutinflator 尝试{
//create layoutinflator try {
LayoutInflater inflator = LayoutInflater.from(this);
//创建视图
final View menuview = inflater.inflate(R.layout.menu,
(ViewGroup) findViewById(R.layout.dictionarylist));
Button Menu = (Button) findViewById(R.id.Menu);
Menu.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
final PopupWindow pw = new PopupWindow(menuview);//initialize popupwindow
pw.showAtLocation(v, Gravity.CENTER, 0, 0);
pw.update(0, 0, 200, 250);
pw.setOutsideTouchable(false);//set outside touch to false
//onclick侦听器,用于popupwindow中的按钮
//onclick listener for the button inside popupwindow
Button b1 = (Button) menuview.findViewById(R.id.btnClose);
b1.setOnClickListener(new OnClickListener() {
// @Override
public void onClick(View v) {
pw.dismiss();
}
});
Button b2 = (Button) menuview.findViewById(R.id.btnQuiz);
b2.setOnClickListener(new OnClickListener() {
// @Override
public void onClick(View v) {
}
});
Button b3 = (Button) menuview.findViewById(R.id.btnTopic);
b3.setOnClickListener(new OnClickListener() {
// @Override
public void onClick(View v) {
InitialTask2 Task1 = new InitialTask2();
Task1.execute();
}
});
Button b4 = (Button) menuview
.findViewById(R.id.btnDictionarylist);
b4.setOnClickListener(new OnClickListener() {
// @Override
public void onClick(View v) {
try{
if(getApplication() != null){
pw.dismiss();
}
else{
Intent i = new Intent();
i.setClass(getBaseContext(), Dictionarylist.class);
startActivity(i);
}
}
catch(Exception x){
x.getMessage();
}
}
});
}
});
} catch (Exception e) {
e.getMessage();
}
}
单击外部的弹出窗口不起作用pw.setOutsideTouchable(false);
.在弹出窗口外单击时,它会执行放置在弹出窗口(即父窗口)后面的操作.
popup window outside click does not work pw.setOutsideTouchable(false);
. When clicking outside the popup window it perform action placed behind the popup window i.e parent window.
推荐答案
尝试一下:
pw.setTouchable(true);
pw.setFocusable(false);
pw.setOutsideTouchable(false);
当窗口可触摸为true
时,可聚焦为false
时,setOutsideTouchable()
起作用.
When window touchable is true
, focusable is false
, setOutsideTouchable()
works.
如果为setOutsideTouchable(true)
,则将关闭popupwindow外部的触摸,否则弹出窗口的外部仍可被触摸而无需关闭.
If setOutsideTouchable(true)
, touch outside of popupwindow will dismiss, otherwise the outside of popupwindows still can be touchable without dismiss.
这篇关于单击外部弹出窗口设置为false [setOutsideTouchable(false)]不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!