栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

android kotlin CollapsingToolbarLayout+RecyclerView折叠+BaseRecyclerViewAdapterHelper

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android kotlin CollapsingToolbarLayout+RecyclerView折叠+BaseRecyclerViewAdapterHelper

android CollapsingToolbarLayout+RecyclerView折叠+baseRecyclerViewAdapterHelper




    

        

            

            
                
            

        
    


    

    

activity代码 

package com.nyw.folddemo


import android.graphics.Color
import android.graphics.PorterDuff
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import com.bumptech.glide.Glide
import com.chad.library.adapter.base.baseQuickAdapter
import com.chad.library.adapter.base.viewholder.baseViewHolder
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.appbar.AppBarLayout.onOffsetChangedListener
import com.nyw.folddemo.view.RecyManager
import 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.view

import android.annotation.SuppressLint
import android.content.Context
import androidx.recyclerview.widget.*




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.view

import android.graphics.Rect
import android.view.View
import androidx.recyclerview.widget.RecyclerView



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.folddemo

class HomeItem {
    var imgUrl :String = ""
    var title :String = ""

}

build.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}
//不需要findViewById
apply plugin: 'kotlin-android-extensions'

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.nyw.folddemo"
        minSdk 21
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    implementation 'com.github.CymChad:baseRecyclerViewAdapterHelper:3.0.4'
    implementation 'com.github.bumptech.glide:glide:4.11.0'
}

 

demo代码

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号