2016-01-18 175 views
0

每次setText時,TextSwitchers都會切換文本,並且您可以在textSwitcher中插入動畫,以便在您像下面的示例中設置文本時向上滑動。一個用例就像應用中的一個按鈕一樣,用戶點擊時按鈕,textSwitcher向上滑動以顯示新的like count。Recyclerview適配器中的TextSwitcher

textswitcher

我在一個recyclerview使用textSwitcher並創建了一個小的回購來證明我的問題所困擾:https://github.com/Winghin2517/TextSwitcherRV

我的問題是,如果我滾動時,textSwitcher動畫激活本身我可以看到每行中的textSwitcher再次像機場中的招牌一樣閃爍。

我認爲這是由於視圖回收本身,因此textSwitcher重置自己,但想知道是否有一種方法來停止這個機場招牌效應滾動通過recyclerview?

我會想象將文字切換器放在recyclerview中是一個非常常見的用例。

回答

1
if (mDataset.get(position).isClicked()) { 
       ((TextViewHolder) holder).textSwitcher.setText("I was clicked!"); 
      } else { 
       ((TextViewHolder) holder).textSwitcher.setText(mDataset.get(position).getCounter()); 
     } 

我想這是因爲你設置的文本textSwitcher而不檢查如果文本已經設置且其中viewholder得到重用它開始動畫新值(這實際上等於舊) 。

嘗試通過setCurrentText設置文本,這將不會觸發動畫。