takasshii / APIPracticeApp

GithubAPIからランキング一覧を取得して表示するアプリです。
0 stars 1 forks source link

Develop/filter ranking #24

Open shirataki707 opened 2 years ago

shirataki707 commented 2 years ago

変更の概要

なぜこの変更をするのか

やったこと

変更内容

after

影響範囲

どうやるのか

課題

備考

takasshii commented 2 years ago

UIStateに以下の変数を追加し、

    val filteredRankingList: List<Item> = emptyList(),
    val isSearch: Boolean = false

検索時にisSearch = tureとし、更新ボタンを押したらfalseにするようにしました。

isSearchに応じてセットするリストを切り替えてみたのですがどうでしょうか!

// 検索中
  if (uiState.isSearch) {
      adapter.submitList(uiState.filteredRankingList)
  } else if (uiState.repositories != null) {
      // リストに値をセット
      adapter.submitList(uiState.repositories)

      if (uiState.time != null) {
          // 時間をセット
          binding.timeText.text = uiState.time
      }
  }
shirataki707 commented 2 years ago

なるほど!isSearchで管理すればobserveのところの処理うまくいきますね(変数名もわかりやすいです).ありがとうございます!また変なコードを書いてしまうことあるとおもうので,遠慮なく指摘していただけると嬉しいです. uiStateの使い方もわかった気がします!動作確認もしましたが問題なさそうでした!

takasshii commented 2 years ago

ありがとうございます!こちらこそ色々指摘していただけると助かります!

takasshii commented 2 years ago

一度adapter内のListを破棄するのは勿体無い気がするので検索時は別Fragmentを出現させるといった方法を取るのが良いかもしれませんね…ちょっと実装例探してみます。