欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android SeekBar在刷新使用中需要注意的問(wèn)題

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

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

問(wèn)題

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

具體Demo是在第一個(gè)Fragemnt中通過(guò)滑動(dòng)條改變ViewModel中的數(shù)據(jù),并在點(diǎn)擊按鈕后

導(dǎo)航進(jìn)入第二個(gè)Fragment,在第二個(gè)Fragment中繼續(xù)改變?cè)摂?shù)據(jù),然后在通過(guò)返回鍵返

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

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

分析問(wèn)題

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

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

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

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

解決方法

在Fragment中添加一個(gè)標(biāo)志位來(lái)判斷onProgressChanged是否是第一次執(zhí)行,若是第一次執(zhí)行,就在SeekBar中讀取viewModel中的值,并且在onProgressChanged方法中手動(dòng)更改進(jìn)度條:

    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());
            }
        }    

-否則,就將進(jìn)度條的值讀取并更改ViewModel中的值。

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

相關(guān)文章

最新評(píng)論