我正在菜单项上设置actionLayout并设置背景颜色和图像,但它不受尊重.在我的活动中,我有:
getMenuInflater().inflate(R.menu.submit_action, menu);
Run Code Online (Sandbox Code Playgroud)
我的submit_action是:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_submit"
android:actionLayout="@layout/check"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我的支票布局是
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/actionButtonStyle"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#e8e8e8"
android:clickable="true"
android:contentDescription="lol" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:scaleType="centerInside"
android:src="@drawable/ic_action_tick" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但即使使用了所有这些设置,这就是操作栏的显示方式,根本不显示我的menuitem(但它在那里,因为它响应了点击,但没有出现):

我正在构建一个Android应用程序,我正在尝试构建一个用户可以登录,注销等用户管理系统.我想在用户注销时显示登录菜单项,如果用户已登录则显示注销按钮in.我怎么能动态地这样做?
这是现在的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add" android:title="Add" android:icon="@drawable/ic_menu_add"/>
<item android:id="@+id/list" android:title="List" android:icon="@drawable/ic_menu_list"/>
<item android:id="@+id/refresh" android:title="Refresh" android:icon="@drawable/ic_menu_refresh"/>
<item android:id="@+id/login" android:title="Login" android:icon="@drawable/ic_menu_login"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我现在的Java:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.activity_main, menu);
return(super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
System.out.println(item.getItemId()==R.id.add);
if (item.getItemId()==R.id.add)
{
//Cannot add spot unless we have obtained the users current location.
if((currentLat != 0) && (currentLng != 0))
{
System.out.println("loggedin? : " + auth.isLoggedIn());
if(!auth.isLoggedIn())
{
Toast.makeText(MainActivity.this, "You must be logged in to add …Run Code Online (Sandbox Code Playgroud) 如何更改菜单项标题的文本颜色.我试着改变它如下
<style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但它仅更改操作栏标题文本的颜色,而不更改菜单项文本.
如何更改选项菜单的索引图标?

我的意思是图标(3).
这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是XML文件:
<item android:id="@+id/Bugreport"
android:title="@string/option_bugreport" />
<item android:id="@+id/Info"
android:title="@string/option_info" />
<item android:id="@+id/About"
android:title="@string/option_about" />
Run Code Online (Sandbox Code Playgroud)
android android-menu android-icons android-optionsmenu android-actionbar
我正在处理动作菜单项及其溢流项目这是我的 main_menu.xml
<?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/menu_search"
android:icon="@drawable/search"
android:title="@string/start_new_project"
app:showAsAction="always" />
<item
android:id="@+id/menu_dts_overflow"
android:icon="@drawable/ic_action_overflow_round"
android:orderInCategory="11111"
android:title="Service"
app:showAsAction="always">
<menu>
<item
android:id="@+id/menu_newProject"
android:icon="@drawable/newproject"
android:title="@string/start_new_project"
app:showAsAction="never" />
<item
android:id="@+id/menu_help"
android:icon="@drawable/help"
android:title="Service Tasks"
app:showAsAction="never" />
<item
android:id="@+id/menu_signOut"
android:icon="@drawable/signout"
android:title="@string/menusignout"
app:showAsAction="never" />
</menu>
</item>
Run Code Online (Sandbox Code Playgroud)
我试图构建一个搜索项和溢出项,您可以在上面的代码中看到.我是Action栏目菜单项目的新手,所以我尝试了Google,并且能够让它按照我的需要运行.
在这里我还要知道一件事.
1.什么是orderInCategory一些数字,使用了什么..?
我试图让ActionBar在我的应用程序上正常工作(我正在使用ActionBarSherlock在Android 2.x和4.x之间获得统一的UI).
我觉得android:showAsAction="ifRoom"这只是一个大而肥胖的谎言.每当我设置动作时,ifRoom即使有足够的空间,也会在溢出菜单中显示.以下是来自同一模拟器的两个屏幕截图.第一个显示ActionBar,其中所有选项都设置为always,第二个显示ActionBar,后两个选项设置为ifRoom.正如你所看到的那样,当always屏幕截图中显示所有房间时,还有很多空间,所以为什么它们都没有在第二个显示,因为它们有空间?


这是我的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="@drawable/ic_menu_btn_add"
android:showAsAction="always"
android:title="Add"/>
<item
android:id="@+id/calculateNPV"
android:icon="@drawable/menu_icon_npv"
android:showAsAction="always"
android:title="NPV"/>
<item
android:id="@+id/calculateIRR"
android:icon="@drawable/menu_icon_irr"
android:showAsAction="always"
android:title="IRR/YR"/>
<item
android:id="@+id/send"
android:icon="@android:drawable/ic_menu_share"
android:showAsAction="always"
android:title="@string/share_pdf"/>
<item
android:id="@+id/graph"
android:icon="@drawable/ic_menu_gallery"
android:showAsAction="ifRoom"
android:title="@string/view_cashflow_diagram"/>
<item
android:id="@+id/deleteReorder"
android:icon="@drawable/ic_menu_clear_playlist"
android:showAsAction="ifRoom"
android:title="@string/delete_reorder_cashflows"/>
</menu>
Run Code Online (Sandbox Code Playgroud) android android-layout android-menu actionbarsherlock android-actionbar
我对上一期的问题提供了非常有用的提示,我希望这次不会有所不同:)首先,让我解释一下情况.我有一个有2个片段的活动.对于每个片段,我有一个xml菜单布局,第一个有四个菜单项,第二个只有一个.现在首先加载具有四个菜单条目的片段.在我设置的onCreate方法中
this.setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)
onCreateOptionsMenu方法
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_fragshow, menu);
}
Run Code Online (Sandbox Code Playgroud)
xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh"
android:icon="@drawable/ic_action_search"
android:title="Refresh"
android:visible="true"
android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_clearall"
android:icon="@drawable/ic_action_search"
android:title="Clear"
android:visible="true"
android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_addcontent"
android:icon="@drawable/ic_action_search"
android:title="Add Content"
android:visible="true"
android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_newlist"
android:icon="@drawable/ic_action_search"
android:title="New List"
android:visible="true"
android:showAsAction="ifRoom|withText" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这很好用.所有菜单项都在那里,我可以点击它们并回复.现在,当我单击"添加内容"菜单时,将加载另一个片段.我也在那里设定
this.setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)
onCreateOptionsMenu方法
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
Log.i("FragCreateList","onCreateOptionsMenu called");
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_fragcreatelist, menu);
}
Run Code Online (Sandbox Code Playgroud)
xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item …Run Code Online (Sandbox Code Playgroud) 解释onCreateOptionsMenu(Menu menu)和之间的区别onPrepareOptionsMenu(Menu menu).
我有个问题.当我在Android Studio中启动一个新项目并选择导航抽屉活动时,它就会发生.我没有访问我activiy_main_drawer.xml的"设计",它一直说"等待构建完成.".我真的不知道自己要做什么.我试图卸载并重新安装Android Studio,但它没有帮助.
在新的更新中,Google发布了一个新的API支持库,该库支持API级别7+的ActionBar.
我使用ActionBarSherlock直到这个更新,我编写了加载菜单的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
和菜单文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item_menu_ok" android:icon="@drawable/ic_action_ok"
android:title="@string/ok" android:showAsAction="always"></item>
<item android:id="@+id/item_menu_cancel" android:icon="@drawable/ic_action_cancel"
android:title="@string/cancel" android:showAsAction="always"></item>
</menu>
Run Code Online (Sandbox Code Playgroud)
设置操作栏上的菜单按钮.此代码与ActionBarSherlock完美配合.但是当我将操作栏更改为新的支持库时,操作栏中不会显示按钮.即使它们被设置为android:showAsAction="always".当我调试代码时,函数menu.getSize()返回2,这是正确的,但没有显示按钮..
为什么按钮未显示在新支持库中?
android android-menu android-actionbar android-support-library