单个条目
import android.graphics.Color
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import org.jetbrains.anko.*
class MovieUI : AnkoComponent<ViewGroup>{
companion object {
const val tvTitleId = 1
const val tvYearId = 2
}
override fun createView(ui: AnkoContext<ViewGroup>): View = with(ui){
verticalLayout {
lparams(matchParent, wrapContent)
padding = dip(16)
textView {
id = tvTitleId
layoutParams = LinearLayout.LayoutParams(matchParent, wrapContent)
text = "Sherlock"
textSize = 16f
textColor = Color.BLACK
}
textView {
id = tvYearId
layoutParams = LinearLayout.LayoutParams(matchParent, wrapContent)
text = "2009"
textSize = 14f
}
}
}
}
adapter
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import me.maybeiwill.copylatitudelongitude.ui.MovieUI
import org.jetbrains.anko.AnkoContext
data class Movie(var title: String, var year: Int)
class MovieAdapter(private var movies: ArrayList<Movie>) :
RecyclerView.Adapter<MovieAdapter.MovieViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MovieViewHolder {
return MovieViewHolder(MovieUI().createView(AnkoContext.create(parent.context, parent)))
}
override fun onBindViewHolder(holder: MovieViewHolder, position: Int) {
val movie = movies[position]
holder.tvTitle.text = movie.title
holder.tvYear.text = "${movie.year}"
}
override fun getItemCount(): Int {
return movies.size
}
inner class MovieViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var tvTitle: TextView = itemView.findViewById(MovieUI.tvTitleId)
var tvYear: TextView = itemView.findViewById(MovieUI.tvYearId)
}
}
activity
recyclerView.layoutManager = LinearLayoutManager(this)
val list: ArrayList<Movie> = arrayListOf()
list.add(Movie("Sherlock Holmes",2009))
list.add(Movie("The Shawshank Redemption",1994))
list.add(Movie("Forrest Gump",1994))
list.add(Movie("Titanic",1997))
list.add(Movie("Taxi",1998))
list.add(Movie("Inception",1994))
list.add(Movie("The Imitation Game",2014))
recyclerView.adapter = MovieAdapter(list)
网友评论