Handle insets for gallery info scene

This commit is contained in:
NekoInverter committed 2021-01-24 17:30:32 +08:00
1 parent c344debcc4
commit 15a81115c5
1 file changed
+16 -2
@@ -25,6 +25,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.Insets;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -169,10 +171,8 @@ public final class GalleryInfoScene extends ToolbarScene {
LayoutUtils.dp2pix(context, 1));
decoration.setPadding(context.getResources().getDimensionPixelOffset(R.dimen.keyline_margin));
mRecyclerView.addItemDecoration(decoration);
//mRecyclerView.setSelector(Ripple.generateRippleDrawable(context, !AttrResources.getAttrBoolean(context, R.attr.isLightTheme), new ColorDrawable(Color.TRANSPARENT)));
mRecyclerView.setClipToPadding(false);
mRecyclerView.setHasFixedSize(true);
//mRecyclerView.setOnItemClickListener(this);
return view;
}
@@ -275,4 +275,18 @@ public final class GalleryInfoScene extends ToolbarScene {
return mKeys == null || mValues == null ? 0 : Math.min(mKeys.size(), mValues.size());
}
}
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
if (mRecyclerView != null) {
int keyline_margin = getResources().getDimensionPixelOffset(R.dimen.keyline_margin);
mRecyclerView.setPadding(mRecyclerView.getPaddingLeft(), mRecyclerView.getPaddingTop(), mRecyclerView.getPaddingRight(), keyline_margin + insets1.bottom);
}
return WindowInsetsCompat.CONSUMED;
}
}