kotlin AppBarLayout+CollapsingToolbarLayout+Toolbar+RecyclerView 滚动折叠

1:没有滚动前 

2:滚动中

 2:向上滚动完成效果

 

 

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                 xmlns:app="http://schemas.android.com/apk/res-auto"
                                                 xmlns:tools="http://schemas.android.com/tools"
                                                 android:layout_width="match_parent"
                                                 android:layout_height="match_parent">


    <android.support.design.widget.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:stateListAnimator="@null">

        <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/dsad"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:contentScrim="@color/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">


            <ImageView
                    android:scaleType="centerCrop"
                    android:src="@mipmap/timg"
                    android:layout_width="match_parent"
                    app:layout_collapseMode="parallax"
                    android:layout_height="200dp"/>

            <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbarw"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:minHeight="48dp"
                    app:contentInsetStart="0dp"
                    app:layout_collapseMode="pin"
                    app:navigationIcon="@null">

                <android.support.constraint.ConstraintLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">

                    <!--<android.support.constraint.ConstraintLayout-->
                            <!--android:id="@+id/rl_tool_bar_container"-->
                            <!--android:layout_width="match_parent"-->
                            <!--android:layout_height="48dp">-->

                        <TextView
                                android:id="@+id/bar_tv"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:gravity="center"
                                app:layout_constraintStart_toStartOf="parent"
                                app:layout_constraintEnd_toEndOf="parent"
                                app:layout_constraintTop_toTopOf="parent"
                                tools:text="课程"/>
                    <!--</android.support.constraint.ConstraintLayout>-->


                </android.support.constraint.ConstraintLayout>
            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_rww"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:clipToPadding="false"
            android:overScrollMode="never"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

    </android.support.v7.widget.RecyclerView>

</android.support.design.widget.CoordinatorLayout>

 

class BarLayoutActivity : BaseActivity() {
    private var stringList = ArrayList<String>()
    private lateinit var toobarw: Toolbar;
    private var linearLayoutManager: MeasuringLinearLayoutManager? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.app_bar_layout)
        intiView()
        setSupportActionBar(toolbarw)
    }

    fun intiView() {
        for (i in 0..49) {
            stringList.add(i.toString() + "item")
        }
        linearLayoutManager = MeasuringLinearLayoutManager(mContext, 1)
        linearLayoutManager!!.orientation = LinearLayoutManager.VERTICAL
        rv_rww.layoutManager = linearLayoutManager

        rv_rww.adapter = barLayouAdapter(stringList, mContext)
        appBarLayout.addOnOffsetChangedListener(object : AppBarLayout.OnOffsetChangedListener {
            override fun onOffsetChanged(p0: AppBarLayout?, p1: Int) {
                Log.i("retetre", "eeww111=" + p1)
                if (p1 == 0) {
                    setScanToolColor(false)
                    Log.i("ewewewe", "wwww11111=" )
                } else {
                    Log.i("ewewewe", "wwww22222=" )
                    setScanToolColor(true)
                }

            }

        })

    }

    private fun setScanToolColor(isSetColor: Boolean) {
        if (isSetColor) {
            bar_tv.text = "我爱学习"
        }else{
            bar_tv.text = ""
            bar_tv.setTextColor(ContextCompat.getColor(mContext, R.color.black))
        }
    }
}

 适配器

class barLayouAdapter (var list: MutableList<String>, var mContext: Context) :
    RecyclerView.Adapter<barLayouAdapter.ViewHolder>() {
    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): ViewHolder {
        return ViewHolder(TextView(p0.context))
    }

    override fun getItemCount(): Int {
        return list.size
    }

    override fun onBindViewHolder(holder: ViewHolder, p1: Int) {
        holder.textView.text = list[p1]
    }


    class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值