onClickListener 用于 popupWindow 之外的触摸
onClickListener for the touch outside of the popupWindow
从问题Issue dismissing popup window我学会了如何隐藏popupWindow
(在此之前,下面代码中的popupWindow.dismiss();
不起作用)。
private void initFAB(){
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
boolean showPopupWindow = false;
public void onClick(View view) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupWindowContent = layoutInflater.inflate(R.layout.popup_window_content, null);
final PopupWindow popupWindow = new PopupWindow(popupWindowContent,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
if (!showPopupWindow){
rotateFabForward();
View.OnClickListener onClickListener = new View.OnClickListener() {
public void onClick(View view) {
//...
}
};
// ...
popupWindow.showAtLocation(fab, Gravity.END | Gravity.BOTTOM, 50, 400);
showPopupWindow = true;
}
else{
rotateFabBackward();
popupWindow.dismiss();
showPopupWindow = false;
}
}
});
}
现在,当我在 popupWindow
外部单击它消失时,FloatingActionButton
不会向后旋转(当 popupWindow
隐藏时它有 +
图标并且旋转 45 度,当 popupWindow
可见时,图标变为 ×
)。
任何允许在 popupWindow
之外注册触摸并执行 rotateFabBackward()
的侦听器?
P. S. 另外,感谢您回答 关于 FAB 轮换的问题。
你应该像那样添加 onDismiss 监听器
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
rotateFabBackward();
showPopupWindow = false;
// end may TODO anything else
}
});
从问题Issue dismissing popup window我学会了如何隐藏popupWindow
(在此之前,下面代码中的popupWindow.dismiss();
不起作用)。
private void initFAB(){
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
boolean showPopupWindow = false;
public void onClick(View view) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupWindowContent = layoutInflater.inflate(R.layout.popup_window_content, null);
final PopupWindow popupWindow = new PopupWindow(popupWindowContent,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
if (!showPopupWindow){
rotateFabForward();
View.OnClickListener onClickListener = new View.OnClickListener() {
public void onClick(View view) {
//...
}
};
// ...
popupWindow.showAtLocation(fab, Gravity.END | Gravity.BOTTOM, 50, 400);
showPopupWindow = true;
}
else{
rotateFabBackward();
popupWindow.dismiss();
showPopupWindow = false;
}
}
});
}
现在,当我在 popupWindow
外部单击它消失时,FloatingActionButton
不会向后旋转(当 popupWindow
隐藏时它有 +
图标并且旋转 45 度,当 popupWindow
可见时,图标变为 ×
)。
任何允许在 popupWindow
之外注册触摸并执行 rotateFabBackward()
的侦听器?
P. S. 另外,感谢您回答
你应该像那样添加 onDismiss 监听器
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
rotateFabBackward();
showPopupWindow = false;
// end may TODO anything else
}
});