当前位置: 首页 > news >正文

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);}}
}
解决后的效果图:

在这里插入图片描述

如果还有问题,可私信我,我每天都看私信的

http://www.dtcms.com/a/344208.html

相关文章:

  • 十大麦克风品牌排行榜,顶级麦克风品牌排行榜,麦克风品牌排行榜
  • 同济北化工联手AM:800 ℃/20 s磁感应闪焊合金负极,金属电池枝晶终结者
  • 一洽客服系统:自定义渠道启用路由和样式设置
  • 【自用】Maven常用依赖
  • AI知识管理全面指南:助力企业高效协作与创新
  • 【STM32】CubeMX(十一):FreeRTOS任务挂起与解挂
  • 汽车行业AI视觉检测方案(四):管控发动机外观缺陷
  • 【网卡配置编辑器】快捷的编辑网卡配置,便于调试网络设备
  • DOLO 上涨:Berachain 生态爆发的前奏?
  • 怎么用pytorch训练一个模型,并跑起来
  • More Effective C++ 条款02:最好使用C++转型操作符
  • JMeter 安装教程:轻松开启性能测试之旅
  • 前后端分离项目(Web篇)
  • BlockingQueue 是什么?
  • MySQL连接原理深度解析:从算法到源码的全链路优化
  • 微信扫码登陆 —— 接收消息
  • 关于日本服务器的三种线路讲解
  • 【Day01】堆与字符串处理算法详解
  • SHA 系列算法教程
  • C++ STL 中算法与具体数据结构分离的原理
  • Apache HTTP Server:深入探索Web世界的磐石基石!!!
  • SSM从入门到实战:2.5 SQL映射文件与动态SQL
  • C#中的LOCK
  • 关于 WebDriver Manager (自动管理浏览器驱动)
  • 第二阶段Winform-4:MDI窗口,布局控件,分页
  • 3.4 缩略词抽取
  • 企业级 AI 智能体安全落地指南:从攻击面分析到纵深防御体系构建
  • FileCodeBox 文件快递柜 一键部署
  • 获取后台返回的错误码
  • 如何使用命令行将DOCX文档转换为PDF格式?