private PopupWindow mOperaPopup;
private void showMenuPopup(View anchor)
{
if(mOperaPopup==null)
{
View popupView=View.inflate(mContext,R.layout.popup_opera_subject,null);
mOperaPopup=new PopupWindow(mContext);
mOperaPopup.setBackgroundDrawable(new ColorDrawable(
mContext.getResources().getColor(R.color.transparent)));
mOperaPopup.setContentView(popupView);
mOperaPopup.setFocusable(true);
mOperaPopup.setOutsideTouchable(true);
//ppw消息監聽,讓整體背景恢復到正常
mOperaPopup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams layoutParams=mActivity.getWindow().getAttributes();
layoutParams.alpha=1.0f;
mActivity.getWindow().setAttributes(layoutParams);
}
});
//手機返回鍵監聽,讓ppw消失
popupView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
mOperaPopup.dismiss();
return true;
}
return false;
}
});
}
int offX=ScreenInfomationLoader.getInstance().dpToPx(107);//適配自定義偏移距離(根據具體佈局)
//gravity是表示ppw相對於anchor的左邊距還是右邊距,x方向向右爲正,y方法,向下爲正
mOperaPopup.showAsDropDown(anchor,-offX,0,Gravity.LEFT);
WindowManager.LayoutParams layoutParams=mActivity.getWindow().getAttributes();
layoutParams.alpha=0.8f;//通過透明度控制整體背景變暗,值越大,越透明;值越小,越暗。
mActivity.getWindow().setAttributes(layoutParams);
}
Android PopupWindow菜單在ListView中顯示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.