Gradient
을 안드로이드 애플리케이션의 상태 표시 줄에 설정하려고합니다. 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