Gradient
色をMy androidアプリケーションのステータスバーに設定しようとしています。 Activityについては、私はBaseActivityのコードの下に配置しました。それは正常に動作しています。グラディエントカラーをステータスバーの部分に設定
public void setStatusBarColor()
{
try
{
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
Drawable background = this.getResources().getDrawable(R.drawable.gradient);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(this.getResources().getColor(R.color.transparent));
window.setNavigationBarColor(this.getResources().getColor(R.color.transparent));
window.setBackgroundDrawable(background);
}
}
catch (Exception ex)
{
GSLogger.e(ex);
}
}
ここでは、Fragment
に同じグラデーションカラーを適用したいと思います。私は約8 fragments
を持っているナビゲーションドロワーを持っています。このグラデーションカラーをステータスバーに適用したいと思います。上記のコードがBaseFragment
に適用されています。それはどんな色にも影響しません。しかし、私は単一のカラーコードを適用すると、正常に動作しています。ここに以下のコードがあります。
public void setStatusBarColor()
{
try
{
Window window = getActivity().getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(getResources().getColor(R.color.black));
}
}
catch (Exception ex)
{
GSLogger.e(ex);
}
}
ここで問題が発生する可能性はありますか?フラグメントにグラデーションカラーを適用できません。しかし、同じコードがActivityでうまく動作しています。
助けていただければ幸いです。
?私が前に言ったように、単一の色がうまくいきます。私はGradient Colorに問題があります。 – Jacky
@Jackyおそらく、このリンクはあなたの問題を解決します。https://www.whatsthatlambda.com/android/how-to-gradient-color-toolbar-and-statusbar – Kinjal