我正在尝试将Google的LeftNavBarLibrary合并到我的应用程序中。当我加载导航栏时,我最终在活动顶部有一个黑条。这个酒吧似乎占据了传统动作栏所占据的空间。
有没有人知道酒吧的来源或如何将其删除。
感谢。
我的应用主题略有个性化。由于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设备上测试这个错误。
答案 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类在屏幕顶部创建了一个人工边距。我认为谷歌出版的图书馆会比这更好,但显然不是。