LeftNavBar在活动顶部创建黑条

时间:2014-01-13 00:46:19

标签: android android-activity android-actionbar

我正在尝试将Google的LeftNavBarLibrary合并到我的应用程序中。当我加载导航栏时,我最终在活动顶部有一个黑条。这个酒吧似乎占据了传统动作栏所占据的空间。

有没有人知道酒吧的来源或如何将其删除。

感谢。

enter image description here

我的应用主题略有个性化。由于MediaRouteActionProvider的要求,基于AppCompat主题

styles.xml

<resources>
    <style name="AppTheme" parent="@style/Theme.AppCompat">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
        <item name="android:background">@drawable/ab_gradient</item>
    </style>
</resources>

上图所示的活动在清单中定义了自定义主题。

的AndroidManifest.xml

<activity
    android:name="my.app.namespace.CoreActivity"
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
</activity>

应用程序最低sdk版本为14.因此它不仅仅是Google TV应用程序。我只能在Android 4.1和4.4设备上测试这个错误。

4 个答案:

答案 0 :(得分:2)

我这样处理动作栏:

getActionBar().hide();

尝试将此项放在您的主要活动或父项活动中,并始终存在。 不要担心清单中的主题,只需使用标题栏设置主题并通过代码隐藏它。

希望这有帮助。

答案 1 :(得分:1)

看看:Hide the Status Bar on Android 4.0 and Lower

请注意,它位于<application>标记中。这可能会对你有所帮助。

<application
    ...
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
    ...
</application>

或以编程方式:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar.
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }

答案 2 :(得分:0)

您可以通过设置自定义主题将android:windowActionBar样式设置为false。 注意:在这种情况下,getActionBar()将返回null。如果使用主题删除操作栏,则窗口根本不允许操作栏。

答案 3 :(得分:0)

谢谢你的回答。真正的问题实际上是LeftNavBar.java类在屏幕顶部创建了一个人工边距。我认为谷歌出版的图书馆会比这更好,但显然不是。