ViewCompat.setOnApplyWindowInsetsListener in CustomThemeListingActivity and CustomThemeListingFragment.

This commit is contained in:
Docile-Alligator
2025-06-16 18:41:02 -04:00
parent e2e3f94625
commit 04775fea96
2 changed files with 63 additions and 0 deletions

View File

@ -17,6 +17,10 @@ import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
@ -109,6 +113,44 @@ public class CustomThemeListingActivity extends BaseActivity implements
applyCustomTheme();
if (isImmersiveInterface()) {
if (isChangeStatusBarIconColor()) {
addOnOffsetChangedListener(binding.appbarLayoutCustomizeThemeListingActivity);
}
ViewCompat.setOnApplyWindowInsetsListener(binding.getRoot(), new OnApplyWindowInsetsListener() {
@NonNull
@Override
public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat insets) {
Insets allInsets = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
| WindowInsetsCompat.Type.displayCutout()
);
setMargins(binding.toolbarCustomizeThemeListingActivity,
allInsets.left,
allInsets.top,
allInsets.right,
BaseActivity.IGNORE_MARGIN);
binding.viewPager2CustomizeThemeListingActivity.setPadding(
allInsets.left,
0,
allInsets.right,
0
);
setMargins(binding.fabCustomThemeListingActivity,
BaseActivity.IGNORE_MARGIN,
BaseActivity.IGNORE_MARGIN,
(int) Utils.convertDpToPixel(16, CustomThemeListingActivity.this) + allInsets.right,
(int) Utils.convertDpToPixel(16, CustomThemeListingActivity.this) + allInsets.bottom);
return WindowInsetsCompat.CONSUMED;
}
});
}
setSupportActionBar(binding.toolbarCustomizeThemeListingActivity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

View File

@ -13,6 +13,10 @@ import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.Insets;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
@ -81,6 +85,23 @@ public class CustomThemeListingFragment extends Fragment {
// Inflate the layout for this fragment
binding = FragmentCustomThemeListingBinding.inflate(inflater, container, false);
if (activity.isImmersiveInterface()) {
ViewCompat.setOnApplyWindowInsetsListener(activity.getWindow().getDecorView(), new OnApplyWindowInsetsListener() {
@NonNull
@Override
public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat insets) {
Insets allInsets = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
| WindowInsetsCompat.Type.displayCutout()
);
binding.recyclerViewCustomizeThemeListingActivity.setPadding(
0, 0, 0, allInsets.bottom
);
return insets;
}
});
}
if (getArguments() != null) {
isOnline = getArguments().getBoolean(EXTRA_IS_ONLINE);
}