/**
* 点击ivOption的时候显示popupwindow
* 出现在条目的下面(传入的参数就是点击的控件)
* @param clickPostion
*/
private void showPopupWindow(View ivOption) {
//获取到点击条目的父布局
View itemView = (View) ivOption.getParent();// 条目
if (mOptionPopupWindow == null) {
//加载popwindow的布局
View contentView = View.inflate(MainActivity.this, R.layout.file_item_pop, null);
//屏幕的宽度
int width = ViewGroup.LayoutParams.MATCH_PARENT;
//父布局的高度
int height = itemView.getHeight();
//new Popwindow(true:表示获取焦点)
mOptionPopupWindow = new PopupWindow(contentView, width, height, true);
// popwindow里面控件的点击事件
contentView.findViewById(R.id.ll_delete).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mOptionPopupWindow.dismiss();
String path = mEntryWrappers.get(mClickPostion).entry.path;
// Toast.makeText(getApplicationContext(), path, 0).show();
CloudEngine.getInstance(MainActivity.this).deleteFile(MainActivity.this, path,
CloudEngine.REQ_FILE_DELETE);
}
});
}
// 点击popupwindows范围以外的地方,让其消失(需要下面两行代码)
mOptionPopupWindow.setBackgroundDrawable(new BitmapDrawable());
mOptionPopupWindow.setOutsideTouchable(true);
// 控制它放置的位置
if (isShowBottom(itemView)) {// 显示在条目下边
//控制popwindow显示的位置(itemView:显示在哪个位置,第二个参数:偏差itemView横向的像素,第三个参数:偏差itemVIew纵向的像素)
mOptionPopupWindow.showAsDropDown(itemView, 0, 0);
} else {// 显示在条目的上边
mOptionPopupWindow.showAsDropDown(itemView, 0, -2 * itemView.getHeight());
}
}