Android Settings 无障碍设置显示大小页面重复加载问题

基于Android 11,跟踪源码

显示大小页面
packages/apps/Settings/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java

通过commit() 提交更新页面显示大小。该方法是是在其父类PreviewSeekBarPreferenceFragment 实现调用。
Android Settings 无障碍设置显示大小页面重复加载问题_第1张图片

基类预览滑动进度页面
packages/apps/Settings/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java

查看setPreviewLayer()方法,在所有用到该方法地方打印日志调试,发现
在操作一次滑动后,调用了两次。
分别是seekbar滑动监听下 onProgressChanged()
Android Settings 无障碍设置显示大小页面重复加载问题_第2张图片

和初始化视图 onCreateView() 中;
Android Settings 无障碍设置显示大小页面重复加载问题_第3张图片

新建一个setPreviewLayer(),
移除 mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex,mPreviewPager.getCurrentItem(), animate); 这一行刷新逻辑, 在Seekbar滑动监听下 onProgressChanged()下替换默认方法

Android Settings 无障碍设置显示大小页面重复加载问题_第4张图片

编译刷机验证。

ps:正常的Android 原生系统这样代码是没问题,猜测可能是系统配置低性能较差,以及开发做的反优化有关…

你可能感兴趣的:(android,framework,android,system,app,settings)