0

ActionBarCombat を使用して、さまざまな OS バージョン間で互換性のある ActionBar を用意しました。すべて正常に動作しますが、アクション バーをタブレットにのみ表示したいと考えています。

Build.VERSION.SDK_INTデバイスの画面サイズ ( ) に基づいsize >=7 inchて、デバイスがタブレットであると判断しています。

public class BaseActivity extends Activity {
//........
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
                    && isTablet()) {

                Log.d(Constants.LOG_TAG, "OK - display ActionBar");
                ActionBarHelper.createInstance(this);

            } else {
                Log.d(Constants.LOG_TAG, "Do not display ActionBar: SDK_INT: "
                        + Build.VERSION.SDK_INT); //
            }
//......
}

問題は、デバイスがタブレットでない場合 (そのため、ActionBarHelper.createInstance(this);が呼び出されない場合でも、アクション バーが引き続き表示されることです。その理由がわかりません。

しかし、私は一つのことに気付きました。main.xml レイアウト ファイルをグラフィカル モードで開くと、上部にアクション バーが表示されますが、レイアウト ファイルをソース モードで開くと表示されません。

ActionBarCombat を非表示にする方法を知っていますか? ありがとうございました。

4

1 に答える 1

0

おそらく、ActionBarHelperDummy拡張を作成できますActionBarHelperActionBarHelperDummyから継承するすべての抽象関数に対しては何もしませんActionBarHelper

このようにして、具体的なクラスが拡張ActionBarHelperされ、何もしないようになります。

その後、万が一に備えActionBarHelper.createInstance()て戻ってきますActionBarHelperDummyBuild.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB

于 2012-05-10T16:25:55.310 に答える