Fragment代码实现
class F1 : Fragment(){
lateinit var ada:ShouyeAda
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
var view = View.inflate(activity, R.layout.f1, null)
var rv = view.find<RecyclerView>(R.id.rv)
rv.layoutManager = LinearLayoutManager(activity)//从上到下的列表视图
ada = ShouyeAda(view.context)
rv.adapter = ada
return view
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
initData()
}
val datas:ArrayList<String> = ArrayList<String>()
private fun initData() {
for (i in 0 until 10){
datas.add("我是商家:"+i)
}
ada.setData(datas)
}
}
适配器的实现
class ShouyeAda(val context:Context) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
companion object{
val TYPE_TITLE = 0;
val TYPE_SELLER = 1
}
//不同position对应不同类型
override fun getItemViewType(position: Int): Int {
if (position==0){
return TYPE_TITLE
}else{
return TYPE_SELLER
}
return super.getItemViewType(position)
}
var mDatas:ArrayList<String> = ArrayList()
fun setData(data:ArrayList<String>){
this.mDatas = data
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
when(viewType){
TYPE_TITLE->return TitleHolder(View.inflate(context,R.layout.title,null))
TYPE_SELLER->return SellerHolder(View.inflate(context,R.layout.seller,null))
else->return TitleHolder(View.inflate(context,R.layout.title,null))
}
}
override fun getItemCount(): Int {
if (mDatas.size>0) {
return mDatas.size + 1
}else{
return 0
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val viewType = getItemViewType(position)
when(viewType){
TYPE_TITLE->(holder as TitleHolder).bindData("我是大哥")
TYPE_SELLER->(holder as SellerHolder).bindData(mDatas[position-1])
}
}
inner class SellerHolder(item:View) : RecyclerView.ViewHolder(item) {
fun bindData(data: String) {
}
init{
}
}
var url_maps:HashMap<String,String> = HashMap()
inner class TitleHolder(item:View) : RecyclerView.ViewHolder(item) {
val sliderLayout:SliderLayout
fun bindData(data: String) {
if (url_maps.size==0){
url_maps.put("Hannibal", "http://static2.hypable.com/wp-content/uploads/2013/12/hannibal-season-2-release-date.jpg");
url_maps.put("Big Bang Theory", "http://tvfiles.alphacoders.com/100/hdclearart-10.png");
url_maps.put("House of Cards", "http://cdn3.nflximg.net/images/3093/2043093.jpg");
url_maps.put("Game of Thrones", "http://images.boomsbeat.com/data/images/full/19640/game-of-thrones-season-4-jpg.jpg");
for ((key,value)in url_maps){
var textslideView:TextSliderView = TextSliderView(context)
textslideView.description(key).image(value)
sliderLayout.addSlider(textslideView)
}
}
}
init{
sliderLayout = item.findViewById(R.id.slider)
}
}
}