Android 4.0之前的菜单使用非常广泛,但是在android4.0之后,很少使用先前的菜单样式了。那如何实现下图的样式了?
我们简单模拟一下。
(1)屏蔽系统弹出的菜单:
1、首先创建至少一个系统的菜单选项
- @Override
- public boolean onCreateOptionsMenu(Menu menu)
- {
- menu.add("menu");// 必须创建一项
- return super.onCreateOptionsMenu(menu);
- }
2、在onMenuOpened方法里显示自己的菜单视图,并返回FALSE。 注意必须返回false,不然会出现menu选项
- @Override
- public boolean onMenuOpened(int featureId, Menu menu){
- switchSysMenuShow();
- return false;// 返回为true 则显示系统menu
- }
3、从图片中可以看出,弹出的是一个listview,所以要按照listview的标准来实现布局,给出布局文件。
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:paddingLeft="20dip"
- android:gravity="right"
- android:id="@+id/hotalk_menu_view_layout" >
- <!-- 显示的listview -->
- <ListView android:id="@+id/hotalk_menu_listview"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingLeft="7.6dip"
- android:paddingRight="7.6dip"
- android:fadingEdge="none"
- android:focusable="true"
- android:longClickable="true"
- android:scrollbarSize="0sp"
- android:scrollbarStyle="insideOverlay"
- android:background="@drawable/menu_bg_popup"
- android:divider="@drawable/menu_bg_line"
- android:dividerHeight="1px"
- android:cacheColorHint="#00000000">
- </ListView>
- </RelativeLayout>