从SherlockActionBar迁移到ActionBar

时间:2014-06-20 22:46:32

标签: android android-actionbar actionbarsherlock android-actionbar-compat

我之前只是迁移到原生actionBar,使用ABS它运行得很好。 现在,我不再需要为API 16 +

开发的兼容性了

我更改了所有引用,现在,我的菜单只显示在文本中,带有物理按钮,它没有显示在操作栏中...

我不知道我错过了什么...

这是我的代码:

main.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_sync"
    android:icon="@drawable/ic_action_update"
    android:orderInCategory="80"
    android:showAsAction="ifRoom"
    android:title="Sync"/>
<item
    android:id="@+id/more"
    android:icon="@drawable/ic_action_core_overflow"
    android:orderInCategory="90"
    android:showAsAction="always"
    android:title="See more options">
    <menu>
        <item
            android:id="@+id/menu_send_coords"
            android:icon="@drawable/ic_action_send_coords"
            android:orderInCategory="80"
            android:showAsAction="ifRoom"
            android:title="Send Coords"
            android:visible="true"/>
        <item
            android:id="@+id/menu_foto"
            android:icon="@drawable/ic_action_device_access_camera"
            android:orderInCategory="100"
            android:showAsAction="ifRoom"
            android:title="Foto"
            android:visible="true"/>
    </menu>
</item>

在我的活动中:

public class DashBoard extends BaseActivity { //BaseActivity extends ActionBarActivity
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

我尝试将菜单xml更改为另一个(谷歌示例),但它不起作用。

我搜索了任何对Sherlock *的引用并替换了所有这些

在我的清单中我有:

  <application
    ...
    android:theme="@style/Theme.AppCompat" >

在我的style.xml中,我有:

     <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <!-- nothing API level dependent yet -->
</style>

    <!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

我遵循了以下每一步: http://www.grokkingandroid.com/migrating-actionbarsherlock-actionbarcompat/

What are the common issues when migrating from ActionBarSherlock to ActionBarCompat?

ActionBarCompat menu item is not showing

我不知道我还能做什么? 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我认为您应该更改style.xml和Android主题,因为您不再使用Android appcompat libarary。

styles.xml:

<style name="AppBaseTheme" parent="@style/Theme.Holo.Light.DarkActionBar">
<!-- nothing API level dependent yet -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

的AndroidManifest.xml:

    <application
        android:theme="@style/AppTheme"
    ...