io.github.lucksiege:pictureselector状态栏没沉浸问题
io.github.lucksiege:pictureselector状态栏没沉浸问题
首先官方地址也有人解决了。
下面给个地址:
https://github.com/LuckSiege/PictureSelector
先看下有问题的图:
你看原生代码没有沉浸上去,官方作者应该也不打算维护了,我们就自己搞吧。
解决方案:重写PictureSelectorSupporterActivity
public class PictureSelectorSupporterActivity extends AppCompatActivity {private SelectorConfig selectorConfig;private FrameLayout fragmentContainer;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);initSelectorConfig();setContentView(R.layout.ps_activity_container);fragmentContainer = findViewById(R.id.fragment_container);immersive();ViewCompat.setOnApplyWindowInsetsListener(fragmentContainer, (view, insets) -> {Insets navigationBar = insets.getInsets(WindowInsetsCompat.Type.navigationBars());view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), navigationBar.bottom);return WindowInsetsCompat.CONSUMED;});setupFragment();}private void initSelectorConfig() {selectorConfig = SelectorProviders.getInstance().getSelectorConfig();}private void immersive() {SelectMainStyle mainStyle = selectorConfig.selectorStyle.getSelectMainStyle();int statusBarColor = mainStyle.getStatusBarColor();int navigationBarColor = mainStyle.getNavigationBarColor();boolean isDarkStatusBarBlack = mainStyle.isDarkStatusBarBlack();if (!StyleUtils.checkStyleValidity(statusBarColor)) {statusBarColor = ContextCompat.getColor(this, R.color.ps_color_grey);}if (!StyleUtils.checkStyleValidity(navigationBarColor)) {navigationBarColor = ContextCompat.getColor(this, R.color.ps_color_grey);}fragmentContainer.setBackgroundColor(navigationBarColor);enableEdgeToEdge(statusBarStyle = SystemBarStyle.light(statusBarColor, statusBarColor),navigationBarStyle = SystemBarStyle.light(navigationBarColor, navigationBarColor));}private void setupFragment() {FragmentInjectManager.injectFragment(this, PictureSelectorFragment.TAG,PictureSelectorFragment.newInstance());}/*** set app language*/public void initAppLanguage() {if (selectorConfig != null && selectorConfig.language != LanguageConfig.UNKNOWN_LANGUAGE && !selectorConfig.isOnlyCamera) {PictureLanguageUtils.setAppLanguage(this, selectorConfig.language, selectorConfig.defaultLanguage);}}@Overridepublic void onConfigurationChanged(@NonNull Configuration newConfig) {super.onConfigurationChanged(newConfig);initAppLanguage();}@Overrideprotected void attachBaseContext(Context newBase) {SelectorConfig selectorConfig = SelectorProviders.getInstance().getSelectorConfig();if (selectorConfig != null) {super.attachBaseContext(PictureContextWrapper.wrap(newBase, selectorConfig.language, selectorConfig.defaultLanguage));} else {super.attachBaseContext(newBase);}}@Overridepublic void finish() {super.finish();if (selectorConfig != null) {PictureWindowAnimationStyle windowAnimationStyle = selectorConfig.selectorStyle.getWindowAnimationStyle();overridePendingTransition(0, windowAnimationStyle.activityExitAnimation);}}
}
解决后的效果图:
如果还有问题,可私信我,我每天都看私信的