日常出入坑-RecyclerView之Duration

前提:

上下滑視頻列表沽甥,實現(xiàn)方式:RecyclerView+LinearLayoutManager

產(chǎn)品需求:

1.黑名單功能。videoList添加author進(jìn)黑名單遂黍,刪除該作者在本地列表的所有視頻终佛。

胖子的思路


image-20210318111750491.png

1.從列表最后往前刪除,防止remove時雾家,由于索引產(chǎn)生變化的bug铃彰。

int tempVideoId = 0;
for (int i = mAdapter.getData().size() - 1; i >= 0; i--) {
    BaseVideoBean baseVideoBean = mAdapter.getData().get(i);
    if (null == baseVideoBean)
        continue;
    if (baseVideoBean.getAuthorInfo().getId() == userId) {
        if (videoId == baseVideoBean.getId() && i + 1 <= mAdapter.getData().size() - 1) {//當(dāng)刪除到這一項時,判斷是否有下一項芯咧,如果有牙捉,賦值
            tempVideoId = mAdapter.getData().get(i + 1).getId();//這里代表刪除項往后推竹揍,第一個未觀看過的視頻
        }
        mAdapter.removeAt(i);
    }
}

2.根據(jù)tempVideoId的值,做相應(yīng)的操作邪铲。

2.1 tempVideoId為0芬位,直接play(size() - 1)

2.2 tempVideoId不為0,找到剩余列表里带到,與之匹配的video昧碉,然后play(對應(yīng)的索引)

然后問題來了

因為視頻上下切換的時候,胖子為了追求性能揽惹,這里是先release播放器被饿,然后再添加。

好了搪搏,在胖子remove完后狭握,立刻去播放相關(guān)視頻,然后毛都沒有疯溺。

最開始的找bug思路:

1.debug论颅,看看index是否正確。

2.debug play()方法囱嫩,看看相關(guān)邏輯恃疯,是否有return。

好了挠说,毫無問題澡谭。

接著,debug RecyclerView.addOnChildAttachStateChangeListener损俭,發(fā)現(xiàn)在胖子移除item時,不是立馬調(diào)用onChildViewDetachedFromWindow潘酗,而是在play之后去調(diào)用杆兵。

mBinding.videoListRecycler.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener() {
    @Override
    public void onChildViewAttachedToWindow(@NonNull View view) {
    }

    @Override
    public void onChildViewDetachedFromWindow(@NonNull View view) {
      //這里,胖子release播放器
    }
});

到這里仔夺,胖子突然想起了琐脏,RecyclerView的notifyItemRemoved是帶動畫效果的,既然帶動畫效果缸兔,那必然就會有duration日裙,去看源碼

private long mAddDuration = 120;
private long mRemoveDuration = 120;
private long mMoveDuration = 250;
private long mChangeDuration = 250;
private void animateRemoveImpl(final RecyclerView.ViewHolder holder) {
    final View view = holder.itemView;
    final ViewPropertyAnimator animation = view.animate();
    mRemoveAnimations.add(holder);
    animation.setDuration(getRemoveDuration()).alpha(0).setListener(
            new AnimatorListenerAdapter() {
                @Override
                public void onAnimationStart(Animator animator) {
                    dispatchRemoveStarting(holder);
                }

                @Override
                public void onAnimationEnd(Animator animator) {
                    animation.setListener(null);
                    view.setAlpha(1);
                    dispatchRemoveFinished(holder);
                    mRemoveAnimations.remove(holder);
                    dispatchFinishedWhenDone();
                }
            }).start();
}

既然找到了原因,解決方法就油然而生了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惰蜜,一起剝皮案震驚了整個濱河市昂拂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抛猖,老刑警劉巖格侯,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鼻听,死亡現(xiàn)場離奇詭異,居然都是意外死亡联四,警方通過查閱死者的電腦和手機(jī)撑碴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朝墩,“玉大人醉拓,你說我怎么就攤上這事∈账眨” “怎么了亿卤?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長倒戏。 經(jīng)常有香客問我怠噪,道長,這世上最難降的妖魔是什么杜跷? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任傍念,我火速辦了婚禮,結(jié)果婚禮上葛闷,老公的妹妹穿的比我還像新娘憋槐。我一直安慰自己,他們只是感情好淑趾,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布阳仔。 她就那樣靜靜地躺著,像睡著了一般扣泊。 火紅的嫁衣襯著肌膚如雪近范。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天延蟹,我揣著相機(jī)與錄音评矩,去河邊找鬼。 笑死阱飘,一個胖子當(dāng)著我的面吹牛斥杜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沥匈,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蔗喂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了高帖?” 一聲冷哼從身側(cè)響起缰儿,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棋恼,沒想到半個月后返弹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锈玉,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年义起,在試婚紗的時候發(fā)現(xiàn)自己被綠了拉背。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡默终,死狀恐怖椅棺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情齐蔽,我是刑警寧澤两疚,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站含滴,受9級特大地震影響诱渤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谈况,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一勺美、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碑韵,春花似錦赡茸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至联喘,卻和暖如春华蜒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豁遭。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工友多, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人堤框。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像纵柿,于是被迫代替她去往敵國和親蜈抓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容