您的位置:首页 > 产品设计 > 产品经理

ListPopupWindow,PopupMenu

2017-07-18 18:20 225 查看

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上自定义弹出窗口,使用起来很方便,位置,内容都很灵活。下次再写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: