如何在使用Theme.AppCompat.Light.DarkActionBar

时间:2015-07-17 15:21:20

标签: android android-actionbar android-appcompat

当我在我的应用上将主题设置为Theme.AppCompat.Light.DarkActionBar时出现问题。出于某种原因,我的操作栏上方有一个白条。我该如何删除?不幸的是,我无法向您展示它的图片,因为我还不允许发布图片。但它只是一个白色的空栏,与动作栏的标题相同。

我的onCreate方法现在看起来像这样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("theme_preference", "1").equals("AppTheme")) {
        setTheme(R.style.AppTheme);
    } else {
        setTheme(R.style.DarkTheme);
    }
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main_transmit);

AppTheme是Theme.AppCompat.Light.DarkActionBar,DarkTheme是Theme.AppCompat。

如何删除出现的白条?

2 个答案:

答案 0 :(得分:0)

我无法确定没有照片,但听起来你有问题我只是弄清楚如何修复。白条是状态栏。从Android 5.0开始,android给应用状态栏与应用程序主题中的colorPrimaryDark颜色相同。如果colorPrimaryDark等于白色,就像它所做的那样,并且需要在我的情况下,所有的白色图标都会混合在一起,并在动作栏上方创建一个坚实,丑陋的白色条。此主题:How to change the status bar color in android包含一些手动更改颜色的方法。我选择使用它:

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setStatusBarColor(getResources().getColor(android.R.color.black));
    }

答案 1 :(得分:0)

当我将AppCompat.Light主题的名称从AppTheme更改为LightTheme时,两个动作栏的问题消失了。我不知道为什么android只是因为调用了主题而表现出来的行为,但确实如此。我把名字从AppTheme改为LightTheme,问题就消失了。