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>