ListPopupWindow,PopupMenu

PopupMenu

PopupMenu很简单,实现的功能也很简单,源码都没过300行,这里也不多说,直接代码

 PopupMenu popupMenu = new PopupMenu(this, view);
        popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());
        popupMenu.show();

就这么简单,popupMenu还有几个其他的方法,比如 popupMenu.dismiss();
popupMenu.setOnMenuItemClickListener(监听)
关于菜单main文件

<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
    <item
        android:id="@+id/item_1"
        android:title="第一个"
        android:checked="true"
        android:orderInCategory="101"
    >
    </item>
    <item
        android:id="@+id/item_2"
        android:title="第一个"
        android:orderInCategory="102"
    >
    </item>
    <item
        android:id="@+id/item_3"
        android:title="第一个"
        android:orderInCategory="103"
    >

效果
这里写图片描述

ListPopupWindow

ListPopupWindow可以用在下拉列表、查询结果显示、历史记录、提示输入等,当然PopupMenu也可以的。下面是一个简单的实现

final ListPopupWindow listPopupWindow = new ListPopupWindow(MainActivity.this);
        //设置锚点,设置它依附于哪个控件显示
        listPopupWindow.setAnchorView(v);
//        设置宽高,这个可以定制的,
        listPopupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
        listPopupWindow.setHeight(500);
//        设置适配器,和listview玩法一样,可以自定义自己的适配器
        String[] items = {"记录0","记录1","记录2","记录3","记录4"};
        ArrayAdapter   adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items );
        listPopupWindow.setAdapter(adapter);

        listPopupWindow.setModal(true);

        listPopupWindow.show();
        listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                Toast.makeText(getApplicationContext(), "点我干啥"+position, Toast.LENGTH_SHORT).show();
                listPopupWindow.dismiss();
            }
        });

看一眼效果图,有点low
这里写图片描述
对了,还有一个PopWindow,Android上自定义弹出窗口,使用起来很方便,位置,内容都很灵活。下次再写

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值