亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android SeekBar在刷新使用中需要注意的問題

 更新時間:2023年05月08日 11:26:57   作者:Tai_Monster  
SeekBar在刷新使用中需要注意的問題:在使用SeekBar的過程中需要注意刷新頻率,避免頻繁刷新造成的性能問題;同時,需要對SeekBar的監(jiān)聽事件進行適當?shù)膬?yōu)化,減少回調(diào)次數(shù),提高響應速度

Android開發(fā)筆記:關(guān)于SeekBar在刷新使用中的一些問題

問題

今天在用Navigation 在兩個Fragment之間導航時發(fā)現(xiàn)了從第二個Fragment返回到第一個Fragment時SeekBar出現(xiàn)數(shù)據(jù)丟失和進度條不刷新的情況。

具體Demo是在第一個Fragemnt中通過滑動條改變ViewModel中的數(shù)據(jù),并在點擊按鈕后

導航進入第二個Fragment,在第二個Fragment中繼續(xù)改變該數(shù)據(jù),然后在通過返回鍵返

回第一個Fragment并且刷新進度條和數(shù)據(jù)。

但是其實ViewModel中的數(shù)據(jù)是正確的的。

分析問題

通過添加日志對SeekBar相關(guān)的方法的執(zhí)行情況進行分析后,發(fā)現(xiàn)在對SeekBar設置監(jiān)聽

器后,第一次創(chuàng)建Fragment中的視圖中SeekBar中的監(jiān)聽方法:

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)

總會先執(zhí)行一次,而且該方法中的progress值仍為先前的值,進度條UI也仍然是之前的進度。 總之在數(shù)據(jù)同步的方面總有一些問題。

解決方法

在Fragment中添加一個標志位來判斷onProgressChanged是否是第一次執(zhí)行,若是第一次執(zhí)行,就在SeekBar中讀取viewModel中的值,并且在onProgressChanged方法中手動更改進度條:

    seekBar.setOnSeekBarChangeListener(new SeekBar.
    OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, 
        boolean fromUser) {
            if(isSeekBarFirst){
                isSeekBarFirst = false;
                seekBar.setProgress(initData);
            }else {
                viewModel.getNumber().setValue(seekBar.getProgress());
            }
        }    

-否則,就將進度條的值讀取并更改ViewModel中的值。

到此這篇關(guān)于Android SeekBar在刷新使用中需要注意的問題的文章就介紹到這了,更多相關(guān)Android SeekBar刷新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論