0

我利用 ActionBarCombat 在不同的操作系统版本中拥有一个兼容的 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扩展ActionBarHelper. 这ActionBarHelperDummy对于它继承自的每个抽象函数都无济于事ActionBarHelper

这样,您将拥有一个扩展的具体类ActionBarHelper并且什么都不做。

然后ActionBarHelper.createInstance()你会回来ActionBarHelperDummy以防万一Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB

于 2012-05-10T16:25:55.310 回答