android文件管理器导航栏

一直对手机的文件管理器顶部的滑动导航栏(如下图红框)很感兴趣,但是网上这一块却没有这样的效果,可能是简单,没人愿意写吧,今天动手做了下。
这里写图片描述
当进入某一目录时导航栏会自动移动并显示这一目录,点击导航栏某一目录后那么这一目录之后的目录会去掉,这一目录成为了当前目录,并且下面的文件也显示的是当前目录里的文件。
1、本次打算上面的导航用横向的RecycleView实现,当进入目录时就把此目录的路径转化为String数组作为RecycleView的数据源;
2、当点击目录导航栏中某一目录时就把这一目录之后的String从数组中去掉,然后更新下数据即可,去掉几个数组就回退几次,从而下面的显示的当前目录的子目录也会同时更新
下面是效果图
这里写图片描述

难点在于:1、手机设备管理器中的当前目录(也就是导航栏的最后一个)总是可见的,这就需要RecycleView自动滑动到最后一个position,这可以通过RecycleView的smoothScrollToPosition方法来实现。但是当我当我点击“preload”目录时,需要将后面的目录隐藏掉,于是循环remove掉ArrayList中后面的数据,删除后显示的却不是最后一项,而是顺序显示的,也就是并没有实现滑动,搜了下资料,通过RecyclerView.Adapter的notifyDataSetChanged()方法刷新一下,再去滑动就可以了。
2、由于需要上面的导航栏与下面的子目录保持一致,当我点击某一项后,在删除后面目录的同时也需要刷新下面的子目录,这可通过入栈出栈来解决,进入了一个新目录则就执行入栈,删除了几个目录就执行几次出站即可。

貌似语言表达很有问题,看代码应该清楚些: https://github.com/dijiubuzhan/FileManage.git

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值