2016-12-19 9 views
0

私はいくつかの段階があるアクティビティで作業しています。それはウィザードのように設計されているので、そのいくつかのセクションは、ツールバーとステータスバーを隠すページのようなチュートリアルです。アクティビティーはツールバーを隠した状態で開始します。フラグメントのそれぞれにおいて、バックボタンショーなどあれば、私は、私はタイトルを編集するために使用します(ベース断片onStart()方法で呼ばれる)onToolbarShown(ActionBar ab)を持っている、そして私は、以下のshowToolbarメソッドを呼び出す:ステータスバーの色が最初に間違っていて、画面からレイアウトを少し押しています

public void showSystemUi(boolean show){ 
    if(show){ 
     KKDeviceUtil.showSystemUI(mRootLayout); 
    }else { 
     KKDeviceUtil.hideSystemUI(mRootLayout); 
    } 
} 

@Override 
public void showToolbar(boolean show){ 
    if(getSupportActionBar() != null){ 
     showSystemUi(show); 
     if(show) { 
      mRootLayout.setFitsSystemWindows(true); 
      getSupportActionBar().show(); 
     }else{ 
      getSupportActionBar().hide(); 
      mRootLayout.setFitsSystemWindows(false); 
     } 
    } 
} 

showSystemUiは、アンドロイドhereによって提案されている株式の表示/非表示の方法です)

問題は、私がツールバーを初めて表示するとステータスバーが間違った色になり、レイアウトがステータスバーの高さ。ここに見られるように:

wha?

をそして、私は、以前のフラグメントに戻った場合、それが正しいになります:

problems

私は次の断片を切り替え、問題が晴れ

enter image description here

私はtを隠すことはできませんoolbar /システムウインドウを最初に置きます。私は当初、いくつかの操作を別の順序で行い、それらを並べ替えることが助けになると考えましたが、それは何の違いもないようです。私もsetStatusBarColorと呼んでみましたが効果はありませんでした。私は<item name="android:statusBarColor">@color/status_bar_color</item>を私のに持っています。私のステータスバーには正しい色です。私のprimaryDarkは上のスクリーンショット(バギー)と同じ色です。

私がここで間違っているのを見つけることができないのですが、私のツールバー/システムUIを表示/非表示する正しい方法ですか、なぜこれはツールバーの最初の表示でのみ起こりますか?

(注:スクリーンショットから見ることは難しいですが、最初のスクリーンショットでは、「完了」ボタンは、第三のスクリーンショットの正確な配置よりも下にはるかに近いです)

答えて

-1

私は、以下を参照してくださいステータスバーに色が反映されるデモスタイルが表示されました。そこ

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/side_bar_color</item> 
    <item name="colorPrimaryDark">@color/side_bar_color</item> 
    <item name="colorAccent">@color/side_bar_color</item> 
</style> 

「colorPrimaryDarkは、」あなたがマニフェストクラスで、アプリケーションやアクティビティ

+0

Hiにこのスタイルを設定する必要があり、ステータスバーで使用されます、その色です。私の主な色はステータスバーの色と同じではありません。私がこのスタイルにする必要がある唯一のコンポーネントは、私のツールバーです。アプリ全体ではありません。 –

+0

「colorPrimaryDark」だけを設定する必要があるため、「colorAccent」と「colorPrimary」を変更してください。 – bharat7777

+0

しかし、私は実際に現在の主な暗闇を使用する場所では間違っています。これはここで実際の問題に対処していないようです。私はそれをハッキングしたくないと思う。 –