> 文档中心 > android kotlin CollapsingToolbarLayout+RecyclerView折叠+BaseRecyclerViewAdapterHelper

android kotlin CollapsingToolbarLayout+RecyclerView折叠+BaseRecyclerViewAdapterHelper

android CollapsingToolbarLayout+RecyclerView折叠+BaseRecyclerViewAdapterHelper

                           <!--    -->        

activity代码 

package com.nyw.folddemoimport android.graphics.Colorimport android.graphics.PorterDuffimport android.os.Bundleimport android.util.Logimport androidx.appcompat.app.AppCompatActivityimport androidx.core.content.ContextCompatimport androidx.core.content.res.ResourcesCompatimport com.bumptech.glide.Glideimport com.chad.library.adapter.base.BaseQuickAdapterimport com.chad.library.adapter.base.viewholder.BaseViewHolderimport com.google.android.material.appbar.AppBarLayoutimport com.google.android.material.appbar.AppBarLayout.OnOffsetChangedListenerimport com.nyw.folddemo.view.RecyManagerimport kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() {    lateinit var adapter: BaseQuickAdapter    var homeDataList: MutableList = mutableListOf()    override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initView();    }    private fun initView() { initAdapter()    } /**     * 初始化容器     */    fun initAdapter(){ RecyManager.setBaseVertical(this, rcv_data) RecyManager.setItemDecoration(rcv_data, 15, 15, 0, 0) adapter = object : BaseQuickAdapter(R.layout.layout_index_item,     mutableListOf()){     override fun convert(holder: BaseViewHolder, item: HomeItem) {  Glide.with(context).load(item.imgUrl).error(R.mipmap.m1)      .into(holder.getView(R.id.iv_img))  holder.setText(R.id.tv_title,item.title)     } } rcv_data.adapter=adapter for (i in 1..20){     var homeItem :HomeItem = HomeItem()     homeItem.title="好看的小姐姐"     homeItem.imgUrl=""     homeDataList.add(homeItem) } adapter.setList(homeDataList)    }}

themes.xml文件

          @color/purple_500 @color/purple_700 @color/white  @color/teal_200 @color/teal_700 @color/black  ?attr/colorPrimaryVariant          @color/purple_200       @color/purple_200   @color/purple_200 @color/gray_f5         180dp    16dp    16dp        
recyclerView设置布局管理器代码
package com.nyw.folddemo.viewimport android.annotation.SuppressLintimport android.content.Contextimport androidx.recyclerview.widget.*/** * 类描述:recyclerView设置布局管理器 * 修改备注: */object RecyManager {    //设置item的间距    fun  setItemDecoration(recyclerView: RecyclerView, space_top: Int, space_bottom: Int, space_left: Int, space_right: Int){ recyclerView.addItemDecoration(SpaceItemDecoration(space_top, space_bottom, space_left, space_right))    }    //竖向滑动    @SuppressLint("WrongConstant")    fun setBaseVertical(mContext: Context, recyclerView: RecyclerView): LinearLayoutManager { val layoutManager = LinearLayoutManager(mContext) //设置为垂直布局,这也是默认的 layoutManager.orientation = OrientationHelper.VERTICAL //设置增加或删除条目的动画 recyclerView.itemAnimator = DefaultItemAnimator() //设置布局管理器 recyclerView.layoutManager = layoutManager return layoutManager    }    //横向滑动    @SuppressLint("WrongConstant")    fun setHorizontalBase(mContext: Context, recyclerView: RecyclerView): LinearLayoutManager { val layoutManager = LinearLayoutManager(mContext) //设置为垂直布局,这也是默认的 layoutManager.orientation = OrientationHelper.HORIZONTAL //设置增加或删除条目的动画 recyclerView.itemAnimator = DefaultItemAnimator() //设置布局管理器 recyclerView.layoutManager = layoutManager return layoutManager    }    //Grid    fun setGridBase(mContext: Context, recyclerView: RecyclerView,  line: Int) { val layoutManager = GridLayoutManager(mContext, line) //设置增加或删除条目的动画 recyclerView.itemAnimator = DefaultItemAnimator() //设置布局管理器 recyclerView.layoutManager = layoutManager    }}
SpaceItemDecoration类

package com.nyw.folddemo.viewimport android.graphics.Rectimport android.view.Viewimport androidx.recyclerview.widget.RecyclerView/** * 类描述: * 创建人:Administrator * 修改备注: */class SpaceItemDecoration(var space_top: Int, var space_bottom: Int, var space_left: Int, var space_right: Int) : RecyclerView.ItemDecoration() {    override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { super.getItemOffsets(outRect, view, parent, state) outRect.top = space_top outRect.bottom = space_bottom outRect.left = space_left outRect.right = space_right    }}
HomeItem类
package com.nyw.folddemoclass HomeItem {    var imgUrl :String = ""    var title :String = ""}

demo代码

(101条消息) kotlinCollapsingToolbarLayout+RecyclerView折叠-Android文档类资源-CSDN文库

杭州女装网