1

我正在使用我的应用程序底部已弃用的标签栏。我的标签栏的一个例子

然后我ActionBarSherlock在我的应用程序顶部使用了。它适用于 Android v2.3.5 和 version3.2,

但是当我在 Android v4 上运行它时,ActionBar消失和项目ActionBar显示为选项菜单,子菜单显示为上下文菜单。

我无法更改架构并使用片段而不是已弃用的标签栏。

你知道我怎样才能让它ActionBar出现在 Android v4 中吗?

或者你认为这是不可能的,因为在这种情况下我不能使用片段。

public class MainActivity extends SherlockActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.Theme_Styled);
        super.onCreate(savedInstanceState);
    }

    @Override
    protected void onResume() {
        super.onResume();
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getSupportMenuInflater().inflate(R.menu.activity_main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.menu_settings:
            System.out.println("Hello");
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }

}

和style.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
        <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    </style>

    <style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
        <item name="titleTextStyle">@style/TitleText</item>
        <item name="android:titleTextStyle">@style/TitleText</item>
    </style>

    <!-- Title on action bar -->
     <style name="TitleText" >
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">12.5dip</item>
    </style>

</resources>
4

1 回答 1

1

首先,在您的应用程序中使用它会更好SherlockFragmentActivitySherlockFragment因为它是内容。至少在我看来。其次,在 Android 的早期版本中,仅当您为它们设置此值时才会显示操作栏项目:android:showAsAction="always"

例如 :

    <item
    android:id="@+id/sync"
    android:orderInCategory="1"
    android:title="Sync"
    android:icon="@drawable/ic_action_refresh"
    android:showAsAction="always"   />

在具有硬件菜单按钮的设备中,即使您运行应用程序的 android 是 3+,其余元素也将作为子菜单放置。

使用已弃用的 TabBar 对您来说不是问题,但是有一个很好的例子说明如何使用标签ActionBarSherlockFragments您可以在这里找到:FragmentTabManager

于 2013-01-17T11:49:28.563 回答