私はいくつかの段階があるアクティビティで作業しています。それはウィザードのように設計されているので、そのいくつかのセクションは、ツールバーとステータスバーを隠すページのようなチュートリアルです。アクティビティーはツールバーを隠した状態で開始します。フラグメントのそれぞれにおいて、バックボタンショーなどあれば、私は、私はタイトルを編集するために使用します(ベース断片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によって提案されている株式の表示/非表示の方法です)
問題は、私がツールバーを初めて表示するとステータスバーが間違った色になり、レイアウトがステータスバーの高さ。ここに見られるように:
をそして、私は、以前のフラグメントに戻った場合、それが正しいになります:
私は次の断片を切り替え、問題が晴れ
私はtを隠すことはできませんoolbar /システムウインドウを最初に置きます。私は当初、いくつかの操作を別の順序で行い、それらを並べ替えることが助けになると考えましたが、それは何の違いもないようです。私もsetStatusBarColor
と呼んでみましたが効果はありませんでした。私は<item name="android:statusBarColor">@color/status_bar_color</item>
を私のに持っています。私のステータスバーには正しい色です。私のprimaryDarkは上のスクリーンショット(バギー)と同じ色です。
私がここで間違っているのを見つけることができないのですが、私のツールバー/システムUIを表示/非表示する正しい方法ですか、なぜこれはツールバーの最初の表示でのみ起こりますか?
(注:スクリーンショットから見ることは難しいですが、最初のスクリーンショットでは、「完了」ボタンは、第三のスクリーンショットの正確な配置よりも下にはるかに近いです)
Hiにこのスタイルを設定する必要があり、ステータスバーで使用されます、その色です。私の主な色はステータスバーの色と同じではありません。私がこのスタイルにする必要がある唯一のコンポーネントは、私のツールバーです。アプリ全体ではありません。 –
「colorPrimaryDark」だけを設定する必要があるため、「colorAccent」と「colorPrimary」を変更してください。 – bharat7777
しかし、私は実際に現在の主な暗闇を使用する場所では間違っています。これはここで実際の問題に対処していないようです。私はそれをハッキングしたくないと思う。 –