美文网首页
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