首页 > 代码库 > android popupwindow 位置显示

android popupwindow 位置显示

1、在控件的上方:

private void showPopUp(View v) {                LinearLayout layout = new LinearLayout(this);                layout.setBackgroundColor(Color.GRAY);                TextView tv = new TextView(this);                tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));                tv.setText("I‘m a pop -----------------------------!");                tv.setTextColor(Color.WHITE);                layout.addView(tv);                popupWindow = new PopupWindow(layout,120,120);                                popupWindow.setFocusable(true);                popupWindow.setOutsideTouchable(true);                popupWindow.setBackgroundDrawable(new BitmapDrawable());                                int[] location = new int[2];                v.getLocationOnScreen(location);                                popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());        }

在控件的其他方向上显示只需修改最后一行代码即可,如:

2、下方:

popupWindow.showAsDropDown(v);

在下方,其它方法

int[] location = new int[2];  v.getLocationOnScreen(location);
popupWindow.showAtLocation(v, Gravity.TOP, 0,location[1]+v.getHeight());

 

3、左边:

popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]-popupWindow.getWidth(), location[1]);

 

4、右边:

popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]+v.getWidth(), location[1]);