optionMenu是什么呢?就是你的APP顶部栏右侧可以点击的那三个点点,上图
效果就这样收上去就是图一,点击弹出来就是图二的效果
首先要在res文件夹下创建一个menu文件夹,在在menu文件夹下创建一个xml文件文件叫啥名儿随意,我就叫menu,毕竟取名字比较麻烦
如图
然后就编辑menu文件里面的内容了例如
关于item 用法和安卓的其他控件一毛一样,都可以有ID 点击事件
android:checkable="true" 会出现复选框的样式
item 里面可以继续嵌套menu , menu里面就可以继续嵌套item 依此循环,能套多少层没试过
但是item不能直接套item
例如
但是很奇怪的就是第一层的菜单里面加icon图标并不能显示出来<item android:title="扩展菜单" > <menu> <item android:icon="@mipmap/ic_launcher" android:title="123" ></item> <item android:icon="@mipmap/ic_launcher" android:title="456"></item> </menu> </item>
扩展之后的就没问题
完整界面XML如下
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="菜单"
android:checkable="true"
>
</item>
<item
android:checkable="false"
android:id="@+id/menu"
android:title="不知道">
</item>
<item
android:icon="@mipmap/ic_launcher"
android:title="213"></item>
<item android:title="扩展菜单"
>
<menu>
<item
android:icon="@mipmap/ic_launcher"
android:title="123"
></item>
<item
android:icon="@mipmap/ic_launcher"
android:title="456"></item>
</menu>
</item>
</menu>
然后最后就是在activity中重写 onCreateOptionsMenu(Menu menu)这个方法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return true;
}
}
然后就是各种点击事件的处理。。。