2016-03-25 32 views
0

ステータスバーを半透明にすることができましたが、今は色に問題があります。何らかの理由でスワイプアップするとステータスバーの色がツールバーと同じになります。Android、ツールバー、ステータスバーの色は同じです

enter image description here

DetailsActivity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:background="@color/md_grey_200"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="260dp" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:fitsSystemWindows="true" 
     app:layout_behavior="com.my.package.FlingBehavior"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:titleEnabled="true" 

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="76dp" 
       android:paddingTop="24dp" 
       app:layout_collapseMode="pin" 
       android:fitsSystemWindows="false" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 

    </android.support.design.widget.AppBarLayout> 

    <RecyclerView 
     android:id="@+id/details_recyclerview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="10dp" 
     /> 

</android.support.design.widget.CoordinatorLayout> 

スタイル-V21:

<style name="MyFinalTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- ...and here we setting appcompat’s color theme attrs --> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/primary</item> 
    <item name="android:statusBarColor">@color/primary_dark</item> 
</style> 

これは私がステータスバーを半透明にするために使用するものである:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window w = getWindow(); 
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
} 

スタイル-v21でステータスバーの色をprimary_darkに変更しようとしましたが、うまくいかなかった。要求されたとして、

w.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      w.setStatusBarColor(Color.BLUE); 

colors.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#00b386</color> 
    <color name="colorPrimaryDark">#008060</color> 
    <color name="colorAccent">#00e6ac</color> 
</resources> 

私は何をしないのですどちらもこれを持っていませんか?

+0

どの色をどの色に変更したいですか?ご指定ください。ここにcolors.xmlを投稿してください。 –

+0

ステータスバーの色をより暗い緑色のティールに変更したい。私はcolors.xmlを追加しました – Alec

答えて

0

変更するには、この色と

<item name="colorAccent">@color/black</item> 

または私はあなたが指定したに追加することができると思い

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 
+0

何も起こりません.... – Alec

+0

colorAccent = primary、colorPrimary = primaryのような色が一致しませんか? –

+0

はい、私はそれが問題だとは思わない。 – Alec

0

以下などのテーマを使用することができると

<item name="colorAccent">@color/primary</item> 

が起こるかを見ますstyle-21パッケージのアクティビティ!それは透明なので

<item name="android:statusBarColor">@android:color/transparent</item> 

と私はあなたがあなたのCoordinatorLayoutに設定し見、それはとてもときスワイプアップ、このビューがFULL_SCREENという意味だ、ステータスバーには、ツールバーの背景が表示されます。..

android:fitsSystemWindows="true" 

希望

+0

申し訳ありませんが動作しません。 – Alec

0

変更..支援する

<style name="MyFinalTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- ...and here we setting appcompat’s color theme attrs --> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/primary</item> 
    <item name="android:statusBarColor">@color/primary_dark</item> 
</style> 
私はこれが役立つことを願っています

<style name="MyFinalTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- ...and here we setting appcompat’s color theme attrs --> 
    <item name="android:colorPrimary">@color/primary</item> 
    <item name="android:colorPrimaryDark">@color/primary_dark</item> 
    <item name="android:colorAccent">@color/primary</item> 
    <item name="android:statusBarColor">@color/primary_dark</item> 
</style> 

から

+0

悪化すると、ツールバーとステータスバーが白くなりました。 – Alec

+0

はスタイル-v21のものを宣言していますか? –

+0

はい、スタイル-v21/v22とv23の場合 – Alec

0

私はあなたがこの色のことについていくつかの間違った概念を持っていると思います。私はその原則についてあなたに説明したいと思います。

colors.xmlの中には、アンドロイドアプリから始まる3色があります。彼らは -

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="colorPrimary">#3F51B5</color> 
<color name="colorPrimaryDark">#12AE90</color> 
<color name="colorAccent">#FF4081</color> 
</resources> 
  • colorPrimaryDark

これはあなたの活動の一番上の色であり、これは、ネットワーク情報、時間および他のすべてのクールなものが含まれているバーである色です。色を変更する場合は、color.xmlの各色コードを変更します。

  • colorPrimary

これは、タイトルバーの色であり、これはアプリの名前またはcolor.xmlで、それぞれのカラーコードを変更し、その色を変更したいname.ifアクティビティが含まれています。

  • colorAccent

これは、あなたがその色を変更したい場合は、その後color.xmlにそれぞれのカラーコードを変更するボタンのようなあなたのアクティビティ内のアイテムとのEditTextなどの色です。

異なる色のカラーコードはhereです。

私の答えはあなたの質問を解決すると思います。もしそうなら私に知らせてください。

+0

動作しません。私は3色全てを変更し、colors.xmlを確認しました – Alec

1

問題が解決しました。

私はこれらの線除去:

<ImageView 
    android:id="@+id/backdrop" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:scaleType="centerCrop" 
    app:layout_collapseMode="parallax" /> 

透明にstatusBarColorを変更:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window w = getWindow(); 
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
} 

をので、は次のように、私は、ImageViewandroid:fitsSystemWindows="true"を添加:

<item name="android:statusBarColor">@color/transparent</item> 
関連する問題