长春网站建设制作,wordpress里添加字体,自己在家怎么做网站服务器,什么是wap网站菜单资源文件通常放置在res\menu目录下#xff0c;在创建项目时#xff0c;默认不自动创建menu目录#xff0c;所以需手动创建。 Android Resource Directory→ value menu 或在创建根元素为menu/menu标记的xml文件对自动气建眼 res→Android Resounce File…菜单资源文件通常放置在res\menu目录下在创建项目时默认不自动创建menu目录所以需手动创建。 Android Resource Directory→ value menu 或在创建根元素为menu/menu标记的xml文件对自动气建眼 res→Android Resounce File →Resource type→menu子元素为item/iten和group/group
itemliter标记常用属性描述
andraid: id 设置ID也就是唯一标识。 android: title 设置标题。 android: alphabeticShortcut 指定字符快捷键。 android: numericShortcut 指定数字快捷键。 android: enabled 是否可用。 android: checkable 是否可选。 android: visible 是否可见。 android: checked 是否已选用。 android: icon 指定图标需重写onMenuOpened方法并在其中调用设置显示图标才会在列表项中显示图标重写方法。
app: actionViewClass 用于指定操作按钮的视图类的 XML 属性。值可为androidx.appcompat.widget.SearchView搜索框等。
app: showAsAction 该属性用于溢出菜单控制菜单项在导航栏上展示位置。值可为
always 总是在导航栏上显示菜单图标。ifRoom 如果导航栏右侧有空间该项就直接显示在导航栏上不再放入溢出菜单。never 从不在导航栏上显示一直放在溢出菜单列表中。withText 如果能在导航栏上显示除了显示图标还要显示该项的文字说明。collapseActionView 操作视图要折叠为一个按钮点击该按钮再展示操作视图主要用于Searchview。 group/group标记常用属性描述
android: id 为菜单组设置ID。 android: checkableBehavior 指定菜单组选择行为值可为none(不可选)、all(多选)、single(单选)。 android: menuCategory 对某单组进行分类指定优先级值可为container、system、secondary和alternative android: enable 指定该菜单组中全部 单项是否可用 android: visible 指定该菜单组中全部某单项是否可见 item标记中还可包含menu标记用于显示子菜单。group标记中可有多个item标记用于组成菜单组。
//例
?xml version1.0 encodingutf-8?
menu xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoitem android:titleitem1android:icondrawable/zerotwoapp:showAsActionalways/item android:titleitem2menuitem android:titleitem2_1/item android:titleitem2_2//menu/itemgroupitem android:titleitem3/item android:titleitem4//group/menu
1. 上下文菜单
长按注册的控件显示菜单。
public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {... ...TextView textViewfindViewById(R.id.textView);registerForContextMenu(textView);}public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {//用于创建菜单上下文菜单MenuInflater menuInflatergetMenuInflater().inflate(R.menu.test,menu);}public boolean onContextItemSelected(MenuItem item) {//用于选择菜单项上下文菜单int iditem.getItemId();if(idR.id.~){~}return true;}}
2. 选项菜单
点击标题栏或工具栏最右侧三个点显示菜单
如果隐藏标题栏ActionBar且没有使用工具栏ToolBarapp:menu将无法使用。
使用ToolBar时要使用 setSupportActionBar( toolBar ) 将工具栏设为操作栏且为ToolBar的app:menu属性赋值。
public class MainActivity extends AppCompatActivity {public boolean onCreateOptionsMenu(Menu menu) {//用于创建菜单选项菜单/溢出菜单MenuInflater menuInflatergetMenuInflater().inflate(R.menu.test,menu);return true;}public boolean onOptionsItemSelected(MenuItem item) {//用于选择菜单项选项菜单/溢出菜单int iditem.getGroupId();if(idR.id.~){~}return true;}}
3. 溢出菜单
溢出菜单和选项菜单并无较大差别均是点击标题栏ActionBar或工具栏ToolBar最右侧三个点显示菜单。 如果隐藏标题栏ActionBar且没有使用工具栏ToolBarapp:menu将无法使用。
使用ToolBar时要使用 setSupportActionBar( toolBar ) 将工具栏设为操作栏且为ToolBar的app:menu属性赋值。
菜单栏默认不在某单列表中显示图标可制作自定义方法来使其显示图标。
//用于使菜单项在列表中显示图片的自定义方法
class MyMenuUtil{public static void setOverflowIconVisible(int featureId,Menu menu){//ActionBar的featureId是8ToolBar的featureId是108if(featureId%100 Window.FEATURE_ACTION_BARmenu!null){if(menu.getClass().getSimpleName().equals(MenuBuilder)){try {//setOptionalIconsVisible是隐藏方法需要反射机制调用。Method mmenu.getClass().getDeclaredMethod(setOptionalIconsVisible,Boolean.TYPE);m.setAccessible(true);m.invoke(menu,true);}catch (Exception e){e.printStackTrace();}}}}
}
public class MainActivity extends AppCompatActivity {public boolean onMenuOpened(int featureId, Menu menu) {//打开菜单时调用//设置在菜单栏中显示图标MyMenuUtil.setOverflowIconVisible(featureId,menu);return super.onMenuOpened(featureId, menu);}public boolean onCreateOptionsMenu(Menu menu) {//用于创建菜单溢出菜单/选项菜单MenuInflater menuInflatergetMenuInflater().inflate(R.menu.test,menu);return true;}public boolean onOptionsItemSelected(MenuItem item) {//用于选择菜单项溢出菜单/选项菜单int itemIditem.getItemId();int groupIditem.getGroupId();if(itemIdR.id.~){~}return true;}
}