ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HorizontalScrollView+recyclerView

2021-06-28 21:01:58  阅读:214  来源: 互联网

标签:HorizontalScrollView 10000000 06 recyclerView times add data


HorizontlScrollView+recyclerView

最近工作中,遇到一些需求,需要recyclerView竖着展示数据的同时,可以左右滑动,刚开始,我觉得这个可以用recyclerView嵌套一下就可以做,但是发现自己的水平不是很够,就在大佬的指导下,找到了HorizontlScrollView这个横向滑动的控件,找到这个后觉得接下来就和容易了,但是问题还是不少,不多说废话,接下来,来说一下我的使用过程吧,

<HorizontalScrollView
                    android:id="@+id/scroll"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    app:layout_constraintHorizontal_weight="3"
                    app:layout_constraintLeft_toRightOf="@+id/time"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintRight_toRightOf="parent"
                    android:scrollbars="none"
                    android:fillViewport="true">
<!--                    android:fillViewport="true"-->
                    <androidx.recyclerview.widget.RecyclerView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:id="@+id/hor_recycler" />
                </HorizontalScrollView>

这是布局,fillViewport=“true” 这个属性熟悉scrollView的朋友都知道,他是让scrollView的子控件在内容不足时能够显示,这里就不多做解释了,

        data.add("¥10000000")
        data.add("¥10000000")
        data.add("¥10000000")
        data.add("¥10000000")
        data.add("¥10000000")
        data.add("¥10000000")

        times.add("06-01")
        times.add("06-02")
        times.add("06-03")
        times.add("06-04")
        times.add("06-05")
        times.add("06-06")


        times.add(0,"")
        data.add(0,"")

        recyclerview.init(
                LinearLayoutManager(context),
                timeAdapter
        )

        recyclerViewAll.init(
                GridLayoutManager(context, data.size, RecyclerView.HORIZONTAL, false),
//                LinearLayoutManager(context),
                testAdapter
        )
        testAdapter.setNewData(data)
        timeAdapter.setNewData(times)

这个就是给recyclerView设置适配器,接下来重点就来了,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:clipChildren="false">

    <TextView
        android:id="@+id/text"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="目标数"
        android:textSize="15sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="达成数"
        android:textSize="15sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text3"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="完成率"
        android:textSize="15sp"
        android:textStyle="bold" />

</LinearLayout>

这个是recyclerView适配器的布局,为了能让我们的内容能够超出屏幕,让我们整个布局滑动起来,所以给text设置宽度为150dp

class TestAdapter: BaseQuickAdapter<String,BaseViewHolder>(R.layout.adapter_test) {
    override fun convert(helper: BaseViewHolder, item: String?) {
        val adapterPosition = helper.adapterPosition
        if (adapterPosition == 0){

        }else{
            helper.setText(R.id.text,item)
            helper.setText(R.id.text2,"吃吃喝喝")
            helper.setText(R.id.text3,"芜湖")
        }
    }
}

这就是适配器的内容,效果我这是在是不会整一个Gif图,所以就不发效果图了,如果有不明白或者有问题的可以直接留言或者私信,我看到就会第一时间回复

标签:HorizontalScrollView,10000000,06,recyclerView,times,add,data
来源: https://blog.csdn.net/Mr_GCH/article/details/118311770

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有