2017-07-28 33 views
0

我想学习如何在android中使用工具栏并尝试在操作栏中添加菜单,但是当我运行我的预览开始项目时,发现默认的空活动菜单栏现在缺失!我不知道为什么会发生这种情况。在空闲活动中缺少操作栏

这里是我的MainActivity.xml代码

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="ir.cupcode.artin.contact.MainActivity"> 
<ListView 
    android:id="@+id/list" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"/> 

</RelativeLayout> 

和我的代码菜单栏中MainActivity.java块:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menubar, menu); 
    return true; 
} 

这里是我的menubar.xml代码

<?xml version="1.0" encoding="utf-8"?> 

<item 
    android:id="@+id/action_refresh" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:icon="@drawable/ic_action_test" 
    android:title="Refresh"/> 
<item 
    android:id="@+id/action_settings" 
    android:title="Settings"> 
</item> 

此外,我得到了使用android:showAsAction="always",说应该使用应用程序的错误:showAsAction与appcombat库

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_appicon2" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> 
    </application> 

+2

你是否将活动扩展到'AppcompatActivity'? – SripadRaj

+0

发布您的清单 – sasikumar

+0

@SripadRaj默认其扩展! '公共类MainActivity延伸AppCompatActivity' –

回答

0

更改应用主题

android:theme="@style/Theme.AppCompat.Light.NoActionBar" 

android:theme="@style/AppTheme" 
+0

太棒了!解决了我的问题,但你能告诉我为什么我的应用程序设置为android:theme =“@ style/Theme.AppCompat.Light.NoActionBar”?! –

0

更改你的主题从:

android:theme="@style/Theme.AppCompat.Light.NoActionBar" 

到:

android:theme="@style/Theme.AppCompat.Light.DarkActionBar" 
0

首先你要添加工具栏在你MainActivity.xml,里面的相对布局并通过ListView。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="?attr/colorPrimary" 
android:minHeight="?attr/actionBarSize" 
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
app:title="Main Activity"/> 

然后包括在您MainActivity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="ir.cupcode.artin.contact.MainActivity"> 

<include layout="@layout/toolbar" id="@+id/toolbar"> 

<ListView 
    android:id="@+id/list" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"/> 

</RelativeLayout> 

然后,你必须你可以像其命名为“Toolbar.xml”,创造这样的内容创建一个新的文件首先在您的应用程序中实例化工具栏。就像这样:

yourToolbar = (Toolbar) findViewById(R.id.yourToolbar); 
setSupportActionbar(yourToolbar); 

您还可以检查出这些论坛。

Toolbar.inflateMenu seems to do nothing

How to set menu to Toolbar in Android

希望这有助于!