基于Android 11,跟蹤源碼
顯示大小頁面
packages/apps/Settings/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java
通過commit() 提交更新頁面顯示大小。該方法是是在其父類PreviewSeekBarPreferenceFragment 實現調用。
基類預覽滑動進度頁面
packages/apps/Settings/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java
查看setPreviewLayer()方法,在所有用到該方法地方打印日志調試,發現
在操作一次滑動后,調用了兩次。
分別是seekbar滑動監聽下 onProgressChanged()
和初始化視圖 onCreateView() 中;
新建一個setPreviewLayer(),
移除 mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex,mPreviewPager.getCurrentItem(), animate); 這一行刷新邏輯, 在Seekbar滑動監聽下 onProgressChanged()下替換默認方法。
編譯刷機驗證。
ps:正常的Android 原生系統這樣代碼是沒問題,猜測可能是系統配置低性能較差,以及開發做的反優化有關…