いろいろやる課、書く係

いろいろなことを、たんたんと記録するブログ

KotlinでRecycleView復習+区切り線を自前で追加

1年ほど前に手探りでつくったKotlinに、画面を追加することになりまして。

なお環境はこちら。

sakimika.hateblo.jp

何もかも忘れていて困った……画面を追加する方法すら忘れていた。

え?Kotlinファイルを追加すればいいんだっけ?レイアウトファイルかな??

答え:Fragmentテンプレートで追加すれば、レイアウトxmlも生成されるよ。

 

で、追加した画面に、RecycleViewを入れるよ。

 

こちらなどわかりやすいですが、

www.usaco-pg.com

そうそう、アダプターが要るんでしたね……

わたしは画像も表示させたかったので、こちらを参考にしましたよ。

hirauchi-genta.com

あと、画像とテキストで、別画面に遷移させてみました。こんな感じでできた。

override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {

  //省略

  viewHolder.image.setOnClickListener(View.OnClickListener { view ->
    //FragmentAに遷移
  }

  viewHolder.text.setOnClickListener(View.OnClickListener { view ->
    //FragmentBに遷移
  }

}

区切り線は、このプロジェクトではもっぱら自前で追加してますね……1年前、何か融通が効かないことがあったからなんだけど、なんだったかな……

RecycleViewの行レイアウトファイルの一番下に、これを追加するだけ。

    <TextView
        android:id="@+id/alert_Line"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/grey"
        android:layout_marginTop="16dp"
        android:paddingLeft="5dp" />

最初の記事のレイアウトだったらこれでいいけど、2番目だと、LineLayoutで囲まないといけないかな。レイアウトが入り組んでいる場合、このあたりも落ち着いて考えないとこんがらがりますね……

なお、ふつうはDividerItemDecorationというクラスを使ってサクッと表示できます。最初の参考記事に載ってます。

たぶん、表示を細かく設定をしたかったのかなー

DividerItemDecorationクラスを使った区切り線の装飾方法はこんな感じになるみたいです。

hirauchi-genta.com

android.suzu-sd.com

でも別にレイアウトファイルつくるよりは、行レイアウトの一番下に追加した方が早い気がする……邪道かもだけど。