PopWindows放在某个控件的下面

由于大家对于这个很熟悉了,我就不多讲了,直接看代码:
public class MainActivity extends Activity {

Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.my_button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showPopupWindow(view);
        }
    });
}


private void showPopupWindow(View view) {

    // 一个自定义的布局,作为显示的内容
    View contentView = LayoutInflater.from(MainActivity.this).inflate(
            R.layout.popwindows, null);

    final PopupWindow popupWindow = new PopupWindow(contentView,
            ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);

    popupWindow.setTouchable(true);
    // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
    // 我觉得这里是API的一个bug
    popupWindow.setBackgroundDrawable(new BitmapDrawable());

    popupWindow.setTouchInterceptor(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            return false;
            // 这里如果返回true的话,touch事件将被拦截
            // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
        }
    });

    // 设置好参数之后再show
    popupWindow.showAsDropDown(view);

}

}

你可能感兴趣的:(Android)