在Android中添加子菜单的方法很简单,只要在设计菜单的时候给菜单的item增加menu子节点就可以,菜单设计文件的xml代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto">     <item android:id="@+id/get_image" android:title="添加照片" app:showAsAction="always">         <menu>             <item android:id="@+id/from_camera" android:title="拍摄"></item>             <item android:id="@+id/from_album" android:title="相册">                 <menu>                     <item android:title="本地" android:id="@+id/from_local"></item>                     <item android:title="云盘" android:id="@+id/from_cloud"></item>                 </menu>             </item>         </menu>     </item> </menu> | 
在Activity中的响应代码和正常的菜单一样,如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package com.bcoder.study.androidanimation; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; 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.main_menu, menu);         return true;     }     @Override     public boolean onOptionsItemSelected(MenuItem item) {         if(item.getItemId() == R.id.from_cloud){             Toast.makeText(this, "从云盘获取图片...", Toast.LENGTH_LONG).show();         }else if (item.getItemId() == R.id.from_local){             Toast.makeText(this, "从本地获取图片...", Toast.LENGTH_LONG).show();         }         return super.onOptionsItemSelected(item);     } } | 
这种下拉菜单的缺点就是子菜单的位置无法控制。
