1

アプリの下部にある非推奨のタブバーを使用しています。私のタブバーの例

次にActionBarSherlock、アプリケーションの上部にあるを使用しました。Android v2.3.5およびversion3.2では、問題なく動作します。

しかし、Android v4で実行すると、ActionBar消え、上の項目はActionBarオプションメニューとして表示され、サブメニューはコンテキストメニューとして表示されます。

アーキテクチャを変更して、非推奨のタブバーの代わりにフラグメントを使用することはできません。

ActionBarAndroid 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 を使用することは問題ではありませんが、ここで見つけることができるActionBarSherlockusingでタブを使用する方法の良い例があります: FragmentTabManagerFragments

于 2013-01-17T11:49:28.563 に答える