5

アプリケーションで Sherlock アクション バーを使用しています。メニューで「ifRoom|withText」機能を使用しました。縦向きモードでコードをテストすると、アイコンのみが表示され、向きを横向きに回転してもアイコンのみが表示されます。一方、横向きで実行すると、縦向きと横向きにテキストとアイコンが表示されます。これは、画面が回転したときにアクション バーが更新されないことを意味します。どうすれば修正できますか?

メニューには、

    android:showAsAction="ifRoom|withText"

また、マニフェストファイルでこの行を使用して修正しました

    android:configChanges="keyboardHidden|orientation|screenSize"

しかし、うまくいきませんでした。そして、コードアンドロイド2.3を実行します

また、アクティビティでフラグメントを使用しましたが、

        FragmentManager fm = getSupportFragmentManager();
    ft = fm.beginTransaction();

    mFragment1 = fm.findFragmentByTag("f1");

    if (mFragment1 == null) {

        mFragment1 = new MenuFragment();
        ft.add(mFragment1, "f1");

    }

    ft.commit();
4

2 に答える 2

6

構成変更の処理は、ActionBarSherlock ではサポートされていません。

ICS 以前では、ActionBarSherlock はネイティブ アクション バーのような装飾ビューの一部ではないため、コンテンツ ビューと同じ制限を受けます。構成の変更を処理すると、ライブラリが変更に適応できなくなり、誤った表示や特定の部分が表示されます。

Android のドキュメントでは、構成の変更の処理も推奨されていません。特に ActionBarSherlock を使用する場合は、絶対に避けてください。

関連するメモとして、ライブラリの将来のバージョンでこれを回避しようとしていますが、今のところ回避することをお勧めします。

于 2012-05-14T20:21:07.890 に答える
0

構成の変更時に ActionBar メニューを再作成する必要があると思います

invalidateOptionsMenu();
于 2012-05-14T19:38:16.163 に答える