Android 选项菜单样式
我正在尝试创建自己风格的菜单项,但还没有做到 我有几种方法可以做到这一点: 1) menu.xml:Android 选项菜单样式,android,android-optionsmenu,Android,Android Optionsmenu,我正在尝试创建自己风格的菜单项,但还没有做到 我有几种方法可以做到这一点: 1) menu.xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add" android:icon="@android:drawable/ic_me
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/add" />
</menu>
但在这两种情况下,我的菜单项都保持“标准”。我应该怎么做才能改变它的大小、位置等?首先,我不建议定义您自己的菜单样式。在我个人看来,这是不应该改变的。它对ICS+设备也没有用,因为它们没有专用的菜单按钮 但是,如果您希望这样做,您将不得不离开现有的菜单设置,因为无法更改默认行为 您需要做的是在活动的现有布局内创建一个隐藏的布局,然后钩住getKeyDown事件以隐藏/显示此布局
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
myCustomMenu.toggleVisibility();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
这个方法可能看起来像这样
public void toggleVisibility() {
LinearLayout myCustomMenuLayout = (LinearLayout) findViewById(R.id.myCustomMenu);
if (myCustomMenuLayout.getVisibility() == View.GONE) {
myCustomMenuLayout.setVisibility(View.VISIBLE);
} else {
myCustomMenuLayout.setVisibility(View.GONE);
}
}
当涉及到布局时,如果您在单独的布局中创建它,然后像下面一样引用它,这可能是最好的。这样您就可以多次引用它,而无需重复代码
<include android:id="@+id/myCustomMenu" layout="@layout/customMenu" visibility="gone">
从这里开始,您只需填充菜单并定义onclicklisteners等我认为您无法更改菜单的外观,因为这是菜单样式的默认行为。
public void toggleVisibility() {
LinearLayout myCustomMenuLayout = (LinearLayout) findViewById(R.id.myCustomMenu);
if (myCustomMenuLayout.getVisibility() == View.GONE) {
myCustomMenuLayout.setVisibility(View.VISIBLE);
} else {
myCustomMenuLayout.setVisibility(View.GONE);
}
}
<include android:id="@+id/myCustomMenu" layout="@layout/customMenu" visibility="gone">