ブックマーク / qiita.com/kubode (2)

  • DiffUtilを使ってRecyclerView.Adapterをいい感じにする - Qiita

    とある勉強会でコードがほしいと言われたので書いてみます。 DiffUtil 24.2.0で追加された、2つのリストの差分計算を行うユーティリティーです。 計算量がO(N)、移動検知ありだとO(N^2)です。 calculateDiffの結果をdispatchUpdatesTo(adapter)とすることで、RecyclerView.Adapterの各種notify系が呼ばれ、いい感じにアニメーションなどをやってくれます。 使用方法はドキュメントを参照してください。 Diffable DiffUtil.calculateDiffにはDiffUtil.Callbackが必要です。 これをAdapterごとに実装するのは面倒なので、比較可能なアイテムを表すインターフェースとCallbackの実装クラスを定義します。 好みは別れると思いますが、ついでにグローバルスコープ関数も作ります。 inter

    DiffUtilを使ってRecyclerView.Adapterをいい感じにする - Qiita
  • Lifecycleを使ってAutoDisposableを実現する - Qiita

    Support Library v26からAppCompatActivityとFragmentにLifecycleOwnerが実装されるようになりました。 これにより、RxJavaのDisposableを自動でdispose()することができるようになります。 LifecycleObserver Lifecycle#addObserver(LifecycleObserver)することでライフサイクルの通知を受けることができるインターフェースです。 LifecycleObserver自体は何もメソッドを持ちません。 基的にはLifecycleObserverを実装したFullLifecycleObserverかGenericLifecycleObserverを使うことになります。 FullLifecycleObserver void onCreate(LifecycleOwner sour

    Lifecycleを使ってAutoDisposableを実現する - Qiita
  • 1