一种是编写两个Adapter,切换Adapter的方式来实现切换列表视图。另一种方式是同一个Adapter切换布局layout的方式来切换视图

直接复制现在视图,控件ID未作变更,这样可以更改最少的代码达到目的

定义一个变量来控制使用哪种布局视图

private int layoutViewType = LIST_VIEW;

继承 getItemViewType 来达到实现切换视图的功能

@Override
public int getItemViewType(int position) {
return layoutViewType;
}

设置两个方法以便在外部进行参数设定

public void setLayoutViewType(int layoutViewType){
this.layoutViewType = layoutViewType;
}
public int getLayoutViewType(){
return this.layoutViewType;
}

在onCreateViewHolder里进行布局变更

@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.file_manager_item, parent, false);
if(viewType == GRID_VIEW) view = LayoutInflater.from(mContext).inflate(R.layout.file_manager_grid_item, parent, false);
return new myViewHolder(view, mContext);
}

在外部Activity里添加视图变更的图示并添加切换事件

if(fileAdapter.getLayoutViewType() == pub.LIST_VIEW){
fileAdapter.setLayoutViewType(pub.GRID_VIEW);
mView.ivFmViewType.setImageResource(R.drawable.list_48);
mView.rvFmShow.setLayoutManager(new GridLayoutManager(FileManagerActivity.this, 6));
}else{
fileAdapter.setLayoutViewType(pub.LIST_VIEW);
mView.ivFmViewType.setImageResource(R.drawable.grid_view_48);
mView.rvFmShow.setLayoutManager(new LinearLayoutManager(FileManagerActivity.this));
}
fileAdapter.notifyDataSetChanged();

android recyclerview 切换列表视图的更多相关文章

  1. 用RecyclerView实现列表视图

    RecyclerView能够灵活实现大数据集的展示,视图的复用管理比ListView更好,能够显示列表.网格.瀑布流等形式,且不同的ViewHolder能够实现item多元化的功能.但是使用起来会稍微 ...

  2. Android 自学之列表视图ListView和ListActivity

    ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...

  3. Android Studio [RecyclerView/列表视图]

    LinearRecyclerViewActivity.java package com.xdw.a122.recyclerview; import android.graphics.Rect; imp ...

  4. Android RecyclerView、ListView实现单选列表的优雅之路.

    一 概述: 这篇文章需求来源还是比较简单的,但做的优雅仍有值得挖掘的地方. 需求来源:一个类似饿了么这种电商优惠券的选择界面: 其实就是 一个普通的列表,实现了单选功能, 效果如图:  (不要怪图渣了 ...

  5. Kotlin实战案例:带你实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表和网格效果)

    随着Kotlin的推广,一些国内公司的安卓项目开发,已经从Java完全切成Kotlin了.虽然Kotlin在各类编程语言中的排名比较靠后(据TIOBE发布了 19 年 8 月份的编程语言排行榜,Kot ...

  6. Android列表视图(List View)

    Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是 ...

  7. Android——列表视图(ListView)

    列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...

  8. Android应用开发学习之列表视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 列表视图我们会经常用到,可以通过两种方式来创建列表视图,一种方式是直接使用ListView组件创建,另一种方式是通过 ...

  9. Android技术——切换视图(两)随着ViewPage达到Tab幻灯片浏览

    Android技术--切换视图(一)~(四)在资源项目:https://github.com/YongYuIT/MeiNv_Liulanqi 一.早期android(android.support.v ...

  10. android开发 RecyclerView 瀑布列表布局

    1.写一个内容的自定义小布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm ...

随机推荐

  1. 备份一个有的时候,可能需要把其它exe或者dll包含在主程序中....

    1.选中附件,右键生成操作选择  嵌入的资源,例如:handle.exe 2.FileUtil 1 using System.IO; 2 using System.Reflection; 3 4 na ...

  2. CentOS安装msf

    cd /opt curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/met ...

  3. MCP Server On FC 之旅1: MCP 协议的深度解析与云上适配最佳实践

    在人工智能技术高速发展的今天,数据孤岛.工具碎片化.上下文割裂问题已成为制约大模型发挥潜力的关键瓶颈.Model Context Protocol(MCP)作为 Anthropic 于 2024 年推 ...

  4. 免费纯真IP地址数据库的解析

    纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本.如果有需要免费版IP库的朋友可以前往纯真的官网进行申请. 纯真除 ...

  5. Pandas 实现 Excel 多列 转 多行

    也是最近的一个需求, 将一个 Excel 表, 多列转多行, 就把那种行的, 业务人员经常搞的那种垃圾表,给它转为咱熟悉的数据库表的形式, 多列转多行. 还要帮他们处理数据, 恶心得一批, 其实也不一 ...

  6. Vue知识沉淀

    为什么组件my-item的props是listCount,但传入时候用:list-count传入,而 listCount与list-count不一致 <!DOCTYPE html> < ...

  7. codeup之日期类

    Description 编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作. Input 输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日 ...

  8. 计算机组成原理 L03 计算单元(ALU)复习-1

    计算机组成原理 L03 计算单元(ALU)复习-1 进位传输函数和进位产生函数 类推得到 gi 与操作得到 0000 0000 0010 0011 pi 或操作得到 1111 1111 1111 10 ...

  9. Manim实现旋转变色特效

    在数学动画的世界里,旋转与变色特效无疑是最能吸引观众眼球的元素之一. 今天,就让我们一起探索如何使用Manim框架来实现自定义的旋转变色特效吧! 1. 实现原理 Manim的动画魔法源于Animati ...

  10. QMediaPlayer+QVideoWidget+QAudioOutput实现一个简单视频播放器-Qt6.8

    此篇是我在观看使用nginx搭建音视频点播服务器 - seedoubleu - 博客园后,想着使用qt widget写的一个简单播放器 完成nginx搭建音视频点播服务器的话,我推荐使用ffplay进 ...