美文网首页
PopupWindow 弹出gridView

PopupWindow 弹出gridView

作者: 我是划水的 | 来源:发表于2020-09-23 21:22 被阅读0次

    private void initView() {

    tv_my=findViewById(R.id.tv_my);

            tv_my.setOnClickListener(new View.OnClickListener() {

    @Override

                public void onClick(View view) {

    //新建一个GridView

                    GridView gridView =new GridView(MainActivity.this);

                    gridView.setColumnWidth(zitiWidth);//设置宽

                    gridView.setNumColumns(1);//列数

                    gridView.setGravity(Gravity.CENTER);//居中

                    int eightMeasureSpec = View.MeasureSpec.makeMeasureSpec(100, View.MeasureSpec.AT_MOST);

                    gridView.setMinimumHeight(eightMeasureSpec);

    //                gridView.setMinimumHeight();

                    ArrayList> imagelist =new ArrayList>();

                    for (int i =0; i

    HashMap map =new HashMap();

                        map.put("text", iconName[i]);

                        imagelist.add(map);

                    }

    SimpleAdapter simpleAdapter =new SimpleAdapter(MainActivity.this, imagelist,

                            R.layout.my_items, new String[]{"text"}, new int[]{R.id.tv_item});

                    //设置背景

                    Resources resources = getBaseContext().getResources();

                    Drawable HippoDrawable = resources.getDrawable(R.color.colorAccent);

                    gridView.setBackground(HippoDrawable);

                    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override

                        public void onItemClick(AdapterView adapterView, View view, int i, long l) {

    Toast.makeText(MainActivity.this, "点击的是" + i, Toast.LENGTH_SHORT).show();

                        }

    });

                    gridView.setAdapter(simpleAdapter);

                    popupWindow =new PopupWindow(gridView, zitiWidth, ViewGroup.LayoutParams.WRAP_CONTENT, true);

                    popupWindow.setContentView(gridView);

                    popupWindow.setBackgroundDrawable(new BitmapDrawable());

                    // 设置PopupWindow是否能响应外部点击事件

                    popupWindow.setFocusable(true);

                    popupWindow.setOutsideTouchable(false);

                    popupWindow.showAsDropDown(tv_my);//设置popupWindow显示,并且告诉它显示在那个View下面

                }

    });

    //        PopupWindow mPopupWindow = new PopupWindow(my_gridview, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

    //        // 需要设置一下此参数,点击外边可消失

    //        mPopupWindow.setBackgroundDrawable(new BitmapDrawable());

    //    // 设置点击窗口外边窗口消失    这两步用于点击手机的返回键的时候,不是直接关闭activity,而是关闭pop框

    //        mPopupWindow.setOutsideTouchable(true);

    //

    //      // 设置此参数获得焦点,否则无法点击,即:事件拦截消费

    //        mPopupWindow.setFocusable(true);

        }

    public void onWindowFocusChanged(boolean hasFocus) {

    super.onWindowFocusChanged(hasFocus);

        if (tv_my.getWidth() !=0) {

    zitiWidth =tv_my.getWidth();

        }

    }

    相关文章

      网友评论

          本文标题:PopupWindow 弹出gridView

          本文链接:https://www.haomeiwen.com/subject/quqayktx.html