首页 > 其他分享 >Android |(六)基础控件10 RecycleView 滑动【进阶】

Android |(六)基础控件10 RecycleView 滑动【进阶】

时间:2024-07-09 11:55:57浏览次数:16  
标签:布局 控件 viewHolder 管理器 进阶 10 RecycleView drawable

  RecyclerView是官方在5.0之后新添加的控件,推出用来替代传统的ListViewGridView列表控件。

一、RecycleView

(一)总:添加RecycleView控件

(1)activity_main中

(2)初始化 

(3) setLayoutManager()

listRv.setLayoutManager(new LinearLayoutManager(this));

RecyclerView提供了三种布局管理器即:

  • LinearLayoutManager 线性布局管理器(横向/竖向滚动)
  • GridLayoutManager 网格布局管理器(一行显示多个)
  • StaggeredGridLayoutManager 瀑布流布局管理器 

 (二)分:“每个item”的布局 

二、添加Adapter适配器 

(一)添加MyAdapter和viewHolder类

(二)重写3个方法

onCreateViewHolder()

创建viewHolder

1.加载布局传入ViewHolder并返回

参数viewType:和getItemViewType()根据不同数据返回对应布局,如设置Header

onBindViewHolder()

绑定viewHolder

将控件和数据进行绑定
getItemCount()返回多少条

【本步骤代码】

class MyAdapter extends RecyclerView.Adapter<MyAdapter.viewHolder>{
        @NonNull
        @Override
        public viewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            return null;
        }

        @Override
        public void onBindViewHolder(@NonNull viewHolder holder, int position) {

        }

        @Override
        public int getItemCount() {
            return name.length;//有改动
        }

        class viewHolder extends RecyclerView.ViewHolder{

            public viewHolder(@NonNull View itemView) {
                super(itemView);
            }
        }

    }

(三)item对应RecycleView

(1)加载布局

(2)获取控件

(3)设置数据  

四、关联RecycleView和Adapter 

 



 【写在最后|本次所用模拟数据】

    //图片
    private int image[] = {R.drawable.apple,R.drawable.banana,
            R.drawable.litchi,R.drawable.pear,
            R.drawable.pineapple,R.drawable.watermelon};
    //名称
    private String name[] ={"苹果","香蕉","荔枝","梨","菠萝","西瓜"};
    //描述
    private String description[] = {
        "苹果可促进肠胃蠕动,协助人体排出废物,使皮肤红润有光泽",
        "香蕉可治高血压,能促进肠胃蠕动,可治疗便秘",
        "荔枝可改善失眠、健忘、多梦等症,并能促进皮肤新陈代谢,延缓衰老",
        "梨生吃能解除因上呼吸道感染所产生的咽喉干燥痒痛、干咳及烦渴、潮热等阴虚之症",
        "菠萝可用于治疗夏日暑泻、消化不良以及胃脘胀痛的病症",
        "西瓜具有清热利尿、解暑生津的功效,",
        };

【写在最后|本次涉及文件】 


【写在最后|item布局代码】

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="15dp"
    android:orientation="horizontal"
    android:gravity="center">

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="170dp"
        android:layout_height="150dp"
        android:layout_margin="10dp"
        android:src="@drawable/apple"
        android:scaleType="fitXY"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/tv_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="苹果"
            android:textStyle="bold"
            android:textSize="22sp"
            />

        <TextView
            android:id="@+id/tv_description"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/tv_name"
            android:layout_marginTop="-1dp"
            android:text="  苹果可促进肠胃蠕动,协助人体排出废物,使皮肤红润有光泽"
            android:textSize="20sp" />

    </RelativeLayout>
</LinearLayout>

标签:布局,控件,viewHolder,管理器,进阶,10,RecycleView,drawable
From: https://blog.csdn.net/2302_76521583/article/details/140274988

相关文章

  • MySQL 进阶(二)【索引详解】
    前言    程序员避不开和数据库打交道,大数据更是如此,不管是MySQL、Oracle、SQLServer这些OLTP数据库,还是Greeplum、StarRocks、Hive、SparkSQL、FlinkSQL、ClickHouse等OLAP数据库,SQL都是最基础最重要的能力,数据库知识也是每一个程序员必备的知识。  ......
  • mac10.15 突然 vscode打不开了?
    问题描述mac上vscode前一天还用的好好的,第二天突然软件都打不开了解决过程1、第一步:重启电脑(无效)2、第二步:卸载vscode重新安装(依旧无效)3、查阅百度上的方法全部无效百度了大半天都没有找到解决方案,最后参考git发现用户留言在mac上1.91版本会导致运行奔溃,最后安装1.......
  • 智能加速计算卡设计方案:389-基于KU5P的双路100G光纤网络加速计算卡
    基于KU5P的双路100G光纤网络加速计算卡    一、板卡概述    基于XilinxUltraScale+16nm KU5P芯片方案基础上研发的一款双口100GFPGA光纤以太网PCI-Expressv3.0x8智能加速计算卡,北京太速科技该智能卡拥有高吞吐量、低延时的网络处理能力以及辅......
  • 1047java jsp SSM旅游管理系统旅游路线推荐特色产品酒店预约(源码+文档+PPT+运行视频+
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • DevExpress WinForms中文教程 - 如何在Grid控件中集成语义相似性搜索?
    许多用户都知道Microsoft的DanielRoth和SteveSanderson引入的.NET智能组件——AI驱动的UI控件,许多人都喜欢这个控件原因归结为以下几点:由于它的简单性,开发人员可以在本地“驾驭AI”,而无需获得Azure或OpenAIPhD-智能功能使用单个NuGet包即可使用。“智能搜索”是通过本地嵌......
  • Qt 控件的简单实例化
    记录一个初学小白的学习过程,记录一些浅显的学习笔记GroupBoxGroupBox控件的作用是组织界面元素,将一组相关的控件组合在一起,并在顶部显示一个标题。基类:QWidget (第一部分是widget.h)(第二部分是widget.cpp)#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#inc......
  • [QT入门]标签控件(QLabel)
    一、概述QLabel是Qt中用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。QLabel控件是图形用户界面(GUI)开发中的基础元素之一,广泛应用于各种Qt应用程序中。QLabel控件的灵活性和易用性使其成为开发过程中不可或缺的一部分。二、QLabel控件的基本属性和方法1.......
  • 代码随想录算法训练营第27天 | 122.买卖股票的最佳时机 II 55. 跳跃游戏 1005.K次取反
    122.买卖股票的最佳时机II给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。解题:思路:最终利润是可......
  • Python——习题练习 part3 函数进阶
    本篇文章记录函数进阶部分的知识点及例题代码。目录六,函数进阶01 函数的多返回值02函数的传参方式 1,位置参数2,关键字参数3,缺省参数4,不定长参数a,位置传递b,关键字传递03lambda匿名函数六,函数进阶01 函数的多返回值#函数的多返回值deftest_return():......
  • NVIDIA H100 Tensor Core GPU摘要
    NVIDIAH100TensorCoreGPU的特性概括如下:先进的制造工艺与规模:H100基于NVIDIAHopper架构,采用台积电定制的4N工艺,集成高达800亿个晶体管,是目前世界上最为先进的芯片。性能飞跃:针对大规模人工智能(AI)和高性能计算(HPC)应用,H100相较于上一代A100TensorCoreGPU实现了数......