recyclerview

底部导航栏实现方式多样化

邮差的信 提交于 2019-12-06 03:19:00
前沿 距Google I/O(2014)最新发布的Material Design Android 设计风格已经有一段时间了, 2016年Google在 Android Design Support Library 25 基础上增加了 一个BottomNavigationView 新控件, 相比之前实现导航栏的方式,如LinearLayout + TextView(使用android:drawableTop属性+selector状态切换)、 LinearLayout + RelativeLayout(TextView+ImageView) RadioGroup + RadioButton,2015年Google推出的兼容包Android Design Support Library中的TabLayout等 该控件提供更简洁的方式实现功能模块导航,符合材料设计规范, 效果图如下: BottomNavigationView 继承自 FrameLayout 对外暴露了OnNavigationItemSelectedListener接口,便于对子视图点击事件的处理,可以通过此接口动态 改变文字颜色 图标颜色; 在XML需要了解其以下属性 (记得添加 xmlns:app="http://schemas.android.com/apk/res-auto") app:itemIconTint :

140款Android开源优秀项目源码

耗尽温柔 提交于 2019-12-05 23:18:10
BeautifulRefreshLayout-漂亮的美食下拉刷新 https://github.com/android-cjj/BeautifulRefreshLayout/tree/BeautifulRefreshForFood Material Design-动画风格的选项卡tab切换功能 https://github.com/neokree/MaterialTabs TwinklingRefreshLayout-支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果 https://github.com/lcodecorex/TwinklingRefreshLayout DialogLoadding-Android开发之常用的loading等待效果实现,仿微博等待动画。两种实现方式详解 https://github.com/QQ986945193/DialogLoadding owspace-完整高仿单读的APP,模仿得非常精美,基于MVP+Dagger2+Retrofit2.0+Rxjava https://github.com/babylikebird/owspace GSYVideoPlayer-android视频播放器,支持基本的拖动,声音、亮度调节,支持边播边缓存 https://github.com/CarGuo/GSYVideoPlayer

android开发导包升级到androidx踩坑记录【转载】

自作多情 提交于 2019-12-05 23:18:01
最近一直在做安卓开发,奈何手中的资料比较老,资料上的一些Import经常没有,十分让人头疼。 感谢简书上的【 张晴天天天天天】做的整理。 在这里也记录一下备用。 升级Android Studio后,在 Refactor ---> Migrate to AndroidX 路径下可以将整个项目升级到AndroidX。 Migrate to AndroidX.png 所以接下来的修改也是在自动升级后的手动修改。 文末参考文章是Google官方的说明,可以查看里面更详细的指引和说明 Migrating to AndroidX 。 本文目录: 1.手动配置gradle.properties 2.app/build.gradle修改 3.java文件修改 4.布局文件xml修改 5.部分view不可用修改 6.其他问题 7.gradle命令帮助查找问题 8.参考文章 1.手动配置gradle.properties android.enableJetifier=true android.useAndroidX=true 2.app/build.gradle修改 修改前android.support 修改后androidx compile implementation testCompile testImplementation debugCompile debugImplementation

Android RecyclerView 使用完全解析 体验艺术般的控件

我的未来我决定 提交于 2019-12-05 16:32:40
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587 ; 本文出自: 【张鸿洋的博客】 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、GridView。 那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。 你想要控制其显示的方式,请通过布局管理器LayoutManager 你想要控制Item间的间隔(可绘制),请通过ItemDecoration 你想要控制Item增删的动画,请通过ItemAnimator 你想要控制点击、长按事件,请自己写(擦,这点尼玛。) 基本使用 鉴于我们对于ListView的使用特别的熟悉,对比下RecyclerView的使用代码: mRecyclerView = findView(R.id.id_recyclerview);/

Android Studio之RecyclerView和CardView初体验

点点圈 提交于 2019-12-05 13:13:06
RecyclerView : 只负责View的复用和回收,其他事情交由ViewHolder来处理,在XML中的用法和Listview差不多 -------------------------------------- RecyclerView -------------------------------------- 必须为其设置一个LayoutManager: recycler_view.setLayoutManager(new GridLayoutManager(this, 2)); recycler_view.setLayoutManager(new LinearLayoutManager(this)); recycler_view.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL)); 2. 支持普通listview gridview ,支持横竖方向的设置,并且当 设置item高度为随机数时可以直接变成瀑布流效果 。 设置动画效果: recycler_view.setItemAnimator(new DefaultItemAnimator()); 3. adapter必须继承自RecyclerView.Adapter<HomeAdapter

多宫格抽奖

这一生的挚爱 提交于 2019-12-05 07:02:48
网上大多的多宫格抽奖都是自定义view,如果view的布局不一样而且太多的话容易出现oom,不好管理 结合RecyclerView实现多宫格抽奖 效果图如下 满足所有矩形多宫格抽奖 9宫格 16宫格 25宫格 也可以不是正方形 比如 4行5列 acitivity的xml <android.support.v7.widget.RecyclerView android:id="@+id/recycleView" android:layout_width="match_parent" android:layout_height="match_parent" />recyclerView的adapter下面LuckRecyclerViewAdapter /** * Created by taq on 2018/7/3. */import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation.ValueAnimator;import android.content.Context;import android.support.annotation.NonNull;import android.support.v4.content

Android RecyclerView&CardView实现瀑布流效果

扶醉桌前 提交于 2019-12-05 05:29:18
所需要的库及库工程 库: android-support-v7-recyclerview.jar :v21.x android-support-v4.jar :v21.x 库工程: android-support-v7-appcompat:v21.x android-support-v7- cardview 注意:cardView必须使用库工程,而不能使用jar包,原因是其引用了自定义属性 但是,如果必须要使用cardView而不导入工程,建议使用cardview源码,主要步骤如下 : ①将自定义attr,color,dimens,styles拷贝至工程目录下 ②修改源码中的 import android.support.v7.cardview.R; 成当前工程的R资源 ③认真完成以上2步骤 效果预览 Activity文件 package st.app.base.rcp; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.internal.view.menu

支持addHeaderView、 addFooterView、分页加载数据的RecyclerView

大兔子大兔子 提交于 2019-12-04 20:40:17
介绍 HeaderAndFooterRecyclerView是支持addHeaderView、 addFooterView、分页加载数据的RecyclerView。 它可以对 RecyclerView 控件进行拓展,给RecyclerView增加HeaderView、FooterView,并且不需要对你的Adapter做任何修改。 同时,通过修改FooterView State,可以动态为FooterView赋予不同状态(加载中、加载失败、滑到最底等),可以实现RecyclerView分页加载数据时的loading/theEnd/NetWorkError效果。 项目地址 https://github.com/cundong/HeaderAndFooterRecyclerView 使用 添加HeaderView、FooterView mHeaderAndFooterRecyclerViewAdapter = new HeaderAndFooterRecyclerViewAdapter(mDataAdapter); mRecyclerView.setAdapter(mHeaderAndFooterRecyclerViewAdapter); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //add a

Android RecyclerView滚动定位

核能气质少年 提交于 2019-12-04 19:22:06
转载请标明出处: http://blog.csdn.net/tyzlmjj/article/details/49227601 本文出自:【M家杰的博客】 概述 RecyclerView在安卓开发中非常实用,而且简单易用,但是在实际开发中一直有一个问题困扰着我,就是定位问题,实际的项目中总是会遇到这样的需求:检索RecyclerView的某一项(各个项的高度不确定),然后定位这一项,将它显示在顶部。用RecyclerView的默认移动的方法并不能实现这一点(个人感觉官方可能出于性能考虑才不实现这一点)。这篇博客就讲解下我个人是如何实现这个需求的。 Demo演示 敲代码前的思考 RecyclerView提供的用于控制移动的方法有2个 - scrollToPosition(int) 这个方法的作用是显示指定项,就是把你想置顶的项显示出来,但是在屏幕的什么位置是不管的,只要那一项现在看得到了,那它就罢工了! - scrollBy(int x,int y) 这个方法是自己去控制移动的距离,单位应该是像素。 使用scrollToPosition时,移动到前面的项时,它默认会将要显示的项置顶,但是移动到后面的项时,位置就说不好了(看它心情!)一般会显示在最后一个。用过的应该都有所了解。 使用scrollBy时就需要自己计算高度或者宽度。在动态的布局中且各项样式高度可能都不一样的情况下

第02讲集合类和列表类控件

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 16:08:23
集合 有了数组为什么还要集合: 数组是固定长度的,集合长度可变(因此,适应场景不同) 同时存储一对一关系的数据 方便增删改查 不能添加重复数据(如set中) Collection Map 接口 HashMap List Queue Set ArrayList LinkedList HashSet 类 Collection存储类的对象,Map存储键值对。 List和Queue存储的对象是有序的,允许重复的,可以为null;Set中存储的对象是无序的,不允许重复的,只能有一个为null。 ArrayList l ArrayList底层是由数组实现的 l 可以动态增长 l 列表尾部添加或删除元素效率高(在中间插入或删除元素需要移动后面的元素) l 更适合查找或更新元素 l 元素可以为NULL add() 插入元素 size() 查看元素个数,遍历输出元素 remove() 移除元素 (remove(“dd”)只会移除一个) 用removeAll(Collection)可以删除所有 HashSet l Set是元素无序,并且不可以重复的集合,称为集 l HashSet是Set的一个重要的实现类 l HashSet只允许有一个Null值 l 具有良好的存取及查找性能 Iterator(迭代器) Iterator接口可以以统一的方式对各种集合元素进行遍历 hasNext(