recyclerview

Android最佳实践之Material Design

拜拜、爱过 提交于 2020-01-24 03:52:27
Material概述及主题 学习地址: http://developer.android.com/training/material/get-started.html 使用material design创建App: 温习一下material design说明 在app中应用material 主题 创建遵循material design规则的布局 指定投射阴影的高度 使用ListView和CardView 自己定义动画 使用Material 主题 <!-- res/values/styles.xml --> <resources> <!-- your theme inherits from the material theme --> <style name="AppTheme" parent="android:Theme.Material"> <!-- theme customizations --> </style> </resources> 新的Material 主题提供了一下内容: 能够让你调色的系统组件 系统组件的触摸反馈动画 Activity的过渡动画 Material 主题有几种: @android:style/Theme.Material(黑色版本号) @android:style/Theme.Material.Light(浅色版本号) @android:style

从 ListView 到 RecyclerView 的用法浅析

╄→尐↘猪︶ㄣ 提交于 2020-01-21 23:52:50
文章目录 要走好明天的路,必须记住昨天走过的路,思索今天正在走着的路。 ListView,一种在垂直滚动列表中显示条目的视图;RecyclerView,一种在局限的窗口呈现大数据集合的灵活视图。RecyclerView 部件是 ListView 的一种更高级且更灵活的版本。 以上描述来自官网。 移动设备屏幕空间有限,导致在屏幕上一次性显示的内容也是有限的。当需要显示大量的数据时,设想有这样的控件,可以帮助用户只通过手指上下滑动,就可以让屏幕外的数据滚动到屏幕内,同时,屏幕上原有的数据会滚动出屏幕。如此,便可以优雅地解决在局限的屏幕上显示大量数据的问题。ListView 和 RecyclerView 便适用于此。 不过,自 Android 5.0 推出以来,RecyclerView 在很多地方都在逐步取代 ListView,这也是官方推崇的。“江山代有才人出,各领风骚数百年”。如今,已要来到 Android 7.0 的时代,RecyclerView 的使用也很普遍了,或许,ListView 正逐步从 Android 的大舞台退出,RecyclerView 即将独领风骚。 下面浅析从 ListView 到 RecyclerView 的用法。 ListView 的用法 ListViewDemo 地址: ListViewDemo ,学习总结自 郭霖 的《第一行代码》。 新建一个

判断RecyclerView是否滚动到底部

核能气质少年 提交于 2020-01-20 15:36:54
转:http://www.jianshu.com/p/c138055af5d2 一、首先,我们来介绍和分析一下第一种方法,也是网上最多人用的方法: public static boolean isVisBottom(RecyclerView recyclerView){ LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); //屏幕中最后一个可见子项的position int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition(); //当前屏幕所看到的子项个数 int visibleItemCount = layoutManager.getChildCount(); //当前RecyclerView的所有子项个数 int totalItemCount = layoutManager.getItemCount(); //RecyclerView的滑动状态 int state = recyclerView.getScrollState(); if(visibleItemCount > 0 && lastVisibleItemPosition == totalItemCount

RecycleView&&Framgment的使用

不问归期 提交于 2020-01-19 04:34:01
一..添加依赖 dependencies { //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' } 二.布局文件 1.layout/activity_main..xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--<FrameLayout android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/>-->

TableView开发笔记(一)

陌路散爱 提交于 2020-01-17 17:14:45
最近想做一个TableView,主要用于展示表格数据,并且要支持滑动和自定义表格内部的元素(子view)样式 所以先占个坑,做一些准备工作。 第一步:确定一下需求 左上角的“lock”白色块,我把它称为“ lockView ”;上方的“abc”列我把它称为“ horizontalView ”;左侧的“1234567”列我把它称为“ verticalView ”。中间标为“ GridView ”的地方,表示数据域。 slide 表示滑动方向; lock 代表滑动锁定。例如当该表格发生水平滑动时,左侧的“ verticalView ”是不发生变化的,同理,当发生垂直滑动时,上方的“ horizontalView ”是不发生变化的。这就是表格的基础功能。 另外左上角 lockView 控制了 horizontalView 的高度和 verticalView 的宽度,我的设想lockView是一个可自定义的View,用于展示多种不一样的功能和样式。 并且horizontalView、verticalView和GridView中每一个子元素(view)都要是可以自定义的。例如在horizontalView中,可以出现好几个不同的标签:姓名、年龄、性别、吃饭速度,这时我不一定全部使用文字来描述该标签,比如性别一栏中我可以使用图标,再比如吃饭速度一栏在数据域(GridView

RecyclerView使用详解(三)

孤街浪徒 提交于 2020-01-17 08:34:07
在上一篇( RecyclerView使用详解(二) )文章中介绍了RecyclerView的多Item布局实现,接下来要来讲讲RecyclerView的Cursor实现,相较于之前的实现,Cursor有更多的使用场景,也更加的常用,特别是配合LoaderManager和CursorLoader进行数据的缓存及加载显示,基于此我们来重点看看RecyclerView的CursorAdapter具体要怎么实现。 一、CursorAdapter实现(配合LoaderManager和CursorLoader) 如果之前你用过ListView实现过此功能(CursorAdapter),那么你一定对下面这两个方法并不陌生 @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return null; } @Override public void bindView(View view, Context context, Cursor cursor) { } 其中 newView 方法是用来创建Item布局的, bindView 方法是用来绑定当前View数据的,就相当于之前的 getView 方法拆成了两个方法实现。 如果你用RecyclerView,你会发现 CursorAdapter

android RecyclerView (二) ItemDecoration 详解

ε祈祈猫儿з 提交于 2020-01-17 08:30:15
RecyclerView 已经推出了一年多了,日常开发中也已经彻底从 ListView 迁移到了 RecyclerView,但前两天有人在一个安卓群里面问了个关于最顶上的 item view 加蒙层的问题,被人用 ItemDecoration 完美解决。此时我发现自己对 RecyclerView 的使用一直太过基本,更深入更强大的功能完全没有涉及,像 ItemDecoration, ItemAnimator, SmoothScroller, OnItemTouchListener, LayoutManager 之类,以及 RecyclerView 重用 view 的原理。网上也有很多对 RecyclerView 使用的讲解博客,要么讲的内容非常少,要么提到了高级功能,但是并没讲代码为什么这样写,每个方法和参数的含义是什么,像 张鸿洋的博客 ,也讲了 ItemDecoration 的使用,但是看了仍然云里雾里,只能把他的代码拿来用,并不能根据自己的需求编写自己的 ItemDecoration。 在这个系列中,我将对上述各个部分进行深入研究,目标就是看了这一系列的文章之后,开发者可以清楚快捷的根据自己的需求,编写自己需要的各个高级模块。本系列第一篇就聚焦在:RecyclerView.ItemDecoration。本文涉及到的完整代码可以在 Github 获取 。 TL; DR

搞定RecyclerView适配器+Glide图片调用实现新闻简单列表

孤街醉人 提交于 2020-01-15 03:48:22
总体思路:总布局设计好,recyclerview数据用适配器填充,适配器的数据即多个子布局(由图片和文字组成)组成的一个列表,后台实现需要用相应的带有图片和文字属性的类进行数据传输 按顺序看该文档 1.总布局activity_main.xml设置顶层导航栏,设置recyclerView(用适配器填充内容) <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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="wrap_content" android:orientation="vertical" tools:context=".MainActivity"> <HorizontalScrollView android:layout_width="match_parent" android:layout_height="match_parent">

Android学习日志2020-1-14

烂漫一生 提交于 2020-01-14 20:37:13
接收验证码用的倒计时 如果需要在倒计时时对ui组件进行操作,像接收手机验证码时的倒计时,不能新建普通进程,产生错误,例如thread之类。 android.util.AndroidRuntimeException: Animators may only be run on Looper threads //子线程内不可改变ui 一个可以用于计时的类,也可以处理固定时间并且要在固定时间间隔刷新的操作。这个类叫做CountDownTimer,idea中点击类名可以查看详细信息: /** * Schedule a countdown until a time in the future, with * regular notifications on intervals along the way. * * Example of showing a 30 second countdown in a text field: * * <pre class="prettyprint"> * new CountDownTimer(30000, 1000) { * * public void onTick(long millisUntilFinished) { * mTextField.setText("seconds remaining: " + millisUntilFinished /

Android Paging Lib codeLab

混江龙づ霸主 提交于 2020-01-11 07:24:21
Android Paging 1. Introduction What you build 在此代码实验室中,您可以从一个示例应用程序开始,该应用程序已显示GitHub存储库列表,从数据库加载数据,并由网络数据支持。每当用户滚动到显示列表的末尾时,就会触发一个新的网络请求,并将其结果保存到支持该列表的数据库中。 您将通过一系列步骤添加代码,并在进程中集成Paging Library组件。步骤2中描述了这些组件。 What you'll need Android studio 3.4 or higher Familiarity with the following Architecture Components: Room, LiveData, ViewModel and with the architecture suggested in the "Guide to App Architecture". For an introduction to Architecture Components, check out the Room with a View codelab. 2.Setup Your Environment 在这个步骤中,您将下载整个codelab的代码,然后运行一个简单的示例应用程序。 为了让您尽快开始工作,我们准备了一个入门项目,供您在此基础上进行。