Android:状态栏是白色的

出于某种原因,状态栏现在是白色的。 或者更确切地说,是一个白色的,另一个白色的阴影,在明亮的背景下隐约可见的图标。 这是错误的,因为我的appbarlayout使用蓝色阴影作为其颜色。 到目前为止,这一直很好,我不知道我做了什么导致这一点。 我已经尝试手动将statusBarColor设置为colorPrimaryDark(#0277bd),但它无法正常工作。

我只是不知道为什么会发生这种情况。 我正在粘贴我的活动的layout.xml,也许有人可以告诉我这里我做错了什么。

几点说明:

使用的主题尚未更改其默认值,即使用主要颜色设置。 我把它改成了我想要的正确的蓝色阴影,但是当我做了那个改变时,一切都在起作用。

我的layout.xml

         

colors.xml

   #0288d1 #0277bd #FF4081  

styles.xml

     @color/colorPrimary @color/colorPrimaryDark @color/colorAccent   false true     

编辑:好的,find了一个有趣的解决方案,真的很想了解它,而不仅仅是依赖它。 此外,它可能不是长期的最佳答案。

无论如何,对于styles.xml中的基本应用程序主题(AppTheme),我添加了以下行:

 @color/colorPrimaryDark 

它起作用,它使我没有专门指定颜色的所有东西的背景。 但它也使状态栏变成了颜色,所以我通过并将自己的背景添加到其他东西来修复它们。

不过,我觉得这不是理想的解决方案,而且只是想获得更多反馈。 此外,即使没有这一行,它正好着色状态栏。 我不知道我做了什么来打破它首先。

谢谢。

编辑:这是活动代码。 谢谢。

 import android.content.Intent; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import io.craigmiller160.contacts5.R; import io.craigmiller160.contacts5.fragments.ContactsGroupsFragmentPage; import io.craigmiller160.contacts5.fragments.ContactsListFragmentPage; import io.craigmiller160.contacts5.fragments.ContactsTabsPagerAdapter; public class ContactsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); Toolbar toolbar = (Toolbar) findViewById(R.id.contactsActivityToolbar); setSupportActionBar(toolbar); ViewPager viewPager = (ViewPager) findViewById(R.id.contactsTabsViewPager); ContactsTabsPagerAdapter adapter = new ContactsTabsPagerAdapter(getSupportFragmentManager()); adapter.addFragmentPage(new ContactsListFragmentPage(), "Contacts"); adapter.addFragmentPage(new ContactsGroupsFragmentPage(), "Groups"); viewPager.setAdapter(adapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.contactsActivityTabs); tabLayout.setupWithViewPager(viewPager); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.displaySettings) { Intent intent = new Intent(this, DisplaySettingsActivity.class); startActivity(intent); return true; } return super.onOptionsItemSelected(item); } } 

 @android:color/transparent 

您将在values/styles/styles.xml(v21)看到该行代码。 删除它,这解决了问题

你可以通过这个来实现。 转到style.xml(v21)并只更改颜色

  @color/colorPrimary 

我希望这能解决你的问题。

试试这个XML吧。

 < ?xml version="1.0" encoding="utf-8"?>        

我想你可能已经多次设置主题并且它本身令人困惑。

如果一切正常, Status栏将从colorPrimaryDark获取其颜色。

我不能说我已经详细研究了这个问题,但没有其他答案提出“ windowDrawsSystemBarBackgrounds ” – 这似乎无需明确设置状态栏颜色。 因此,values-v21 / styles.xml:

    

我遇到了这个问题。 我通过更改app主题来修复它以扩展NoActionBar AppCompat样式:

  

我的活动布局是:

 < ?xml version="1.0" encoding="utf-8"?>       

RelativeLayout拥有一个Fragment,它在RelativeLayout中只有一个RecyclerView。 所以删除android:statusBarColor =“@ color / colorPrimaryDark”和fitSystemWindow xml行并更改你的主题,我认为应该有效。

在styles.xml中,

替换这个:

  

有:

  

并在Manifest.xml中进行相应的更改