Имеется следующий layout:
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:statusBarScrim="?attr/colorPrimaryDark">
<com.daimajia.slider.library.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@android:color/white"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Я хочу при прокрутке, в момент изменения прозрачности контента из CollapsingToolbarLayout, делать иконки в STATUS BAR тёмными.
Сделал вот так:
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener()
{
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
int toolbarHeight = toolbar.getHeight();
int appBarHeight = appBarLayout.getHeight();
int flagLight = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
int flag = appBarLayout.getSystemUiVisibility();
if (appBarHeight + verticalOffset > 2 * toolbarHeight) {
if ((flag ^ flagLight) == flagLight) {
appBarLayout.setSystemUiVisibility(flag | flagLight);
}
return;
}
if ((flag & flagLight) == flagLight) {
appBarLayout.setSystemUiVisibility(flag ^ flagLight);
}
}
});
Но этот метод работает не точно, т.е. иконки становятся темными раньше чем нужно (смотрим gif)