viewholder

RecyclerView 的拖拽和长按变化Item的位置,设置左右滑动删除数据和滑动改变背景等

匿名 (未验证) 提交于 2019-12-03 00:27:02
项目地址:https://github.com/ChloeDimen/RecyclerviewDemo 点击打开链接 1:想要实现RecyclerView 的拖拽和长按变化Item的位置,设置左右滑动删除数据和滑动改变背景的关键字: ItemTouchHelper 关键代码: MyItemTouchHelperCallBack callback = new MyItemTouchHelperCallBack( adapter ) ; itemTouchHelper = new ItemTouchHelper(callback) ; itemTouchHelper .attachToRecyclerView( rl_data ) ; 2:主要是实现MyItemTouchHelperCallback继承ItemTouchHelper.callback public class MyItemTouchHelperCallBack extends ItemTouchHelper.Callback { private ItemTouchMoveListener mItemTouchMoveListener ; public MyItemTouchHelperCallBack (ItemTouchMoveListener itemTouchMoveListener) {

上拉刷新

匿名 (未验证) 提交于 2019-12-03 00:27:02
//主布局 < RelativeLayout 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= "match_parent" tools :context= "com.example.a1.day9_xiala.MainActivity" > < com.handmark. pulltorefresh .library.PullToRefreshScrollView android :id= "@+id/pull_to_refresh_scrollview" android :layout_width= "fill_parent" android :layout_height= "fill_parent" > < com.example.a1.day9_xiala.MyListview android :id= "@+id/lis_view" android :layout

RecycleView多布局的实现

匿名 (未验证) 提交于 2019-12-03 00:22:01
http://www.jianshu.com/p/f6418086a1b3 介绍了RecycleView的简单使用,并实现了RecycleView的点击事件和长按事件,本篇文章主要讲解的是RecycleView实现多布局。 现在来看下效果图如下: [ͼ1.png] 图二: ͼ2.png 图三: 图三巴纽 上图+实现了四种布局:现在来看看主布局XML: <RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/tools" android:layout_width= "match_parent" android:layout_height= "match_parent" android:paddingLeft= "@dimen/activity_horizontal_margin" android:paddingRight= "@dimen/activity_horizontal_margin" android:paddingTop= "@dimen/activity_vertical_margin" android:background= "#E0F2F1" android:paddingBottom= "

异常

匿名 (未验证) 提交于 2019-12-02 23:45:01
一、JDK版本兼容问题 java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 某些东西包或类需要更高的JDK版本 buildToolsVersion '24.0.0' 需要JDK 1.8 二、布局填充异常 http://blog.csdn.net/huangxiaohu_coder/article/details/8497286 Android运行时异常“Binary XML file line # : Error inflating class” 2.构造函数问题:自定义一个View,必须派生实现基类View的三个构造函数 3.编译的中间文件没有清理干净:第三种就是你在原生系统代码的编译环境下编译APK之后,特别是修改了XML 4.找不到资源文件:我原来在2.3的原生系统增加动态壁纸的时候,动态壁纸一跑起来就出这个异常,然后crash,当时就是因为找不到drawable的资源文件,于是当时我把drawable的hdpi或nodpi等文件夹的图片资源都拷贝一份到drawble下,问题解决( 三、Activity的onCreate()方法(不同API,注意参数问题) W/System.err: java.lang

RecyclerView与ListView

匿名 (未验证) 提交于 2019-12-02 23:34:01
为何google推出了RecyclerView,它与ListView相比有什么优势呢?RecyclerView是否可以完全替代ListView呢? 在缓存机制原理方面 ListView与RecyclerView缓存机制原理大致相似。都是离屏的ItemView即被回收至缓存,入屏的ItemView则会优先从缓存中获取。当然他们是的实现细节还是有差异的 。 ListView ListView有两级缓存;第一层:ActiveViews(用于屏幕内item的快速重用),第二层:ScrapViews(不可见item的缓存) RecyclerView RecyclerView有四级缓存。 屏幕内缓存: 在屏幕中显示的ViewHolder。缓存到mChangedScrap(缓存数据已经改变的ViewHolder)和mAttachedScrap中。 屏幕外缓存:列表滑动出屏幕时,ViewHolder会被缓存。缓存到mCachedViews中。(默认大小为2。大小由 mViewCacheMax 决定。Recyclerview.setItemViewCacheSize(), 可以设置屏幕外缓存的大小) 缓存池:屏幕外缓存的mCachedViews已满时,会将ViewHolder缓存到RecycledViewPool中。 RecyclerView具有的优势: 1

RecyclerView的简单使用

匿名 (未验证) 提交于 2019-12-02 23:32:01
简单讲讲RecyclerView的使用:(这里用的是androidX,而不是之前的supprot-v7,用法基本一样) 1、引入recyclerView的依赖库: implementation 'androidx.recyclerview:recyclerview:1.0.0' 2、主布局内添加RecyclerView的布局控件 <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="match_parent" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent"/> <

recyclerView的用法

匿名 (未验证) 提交于 2019-12-02 23:05:13
1》用recyclerView实现上次ListView实现的效果 导入包 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'//导入相关的support包 testCompile 'junit:junit:4.12'} 导入recyclerView布局 <?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="match

自定义RecyclerView实现下拉刷新,加载更多

匿名 (未验证) 提交于 2019-12-02 22:56:40
RecyclerView出来的时间已经不短了,现在估计大部分的列表类的需求实现首选肯定是RecyclerView,基本上可以跟ListView说再见了。那么问题来了,一般情况下一个列表页面都会有下拉刷新和加载更多功能,RecyclerView本身并没有下拉刷新和加载更多功能,当然现在已经有很多优秀的开源的支持下拉刷新,加载更多功能的三方RecyclerView,可以直接拿过来用。但是。。。有时候光会用是不够的,还需要知道它们是这么实现的,实现的原理是什么。下面就来介绍一下RecyclerView下拉刷新,加载更多功能的实现套路。 要达到上面的效果首先要考虑的是这个顶部下拉的刷新的view和底部加载更多的view放在什么地方合适,答案就是自定义一个WrapAdapter适配器,通过包装Adapter来提供header和footer。因为RecyclerView的Adapter是支持显示多种不同类型的view的,只需要重写RecyclerView.Adapter的 getItemViewType(int position)方法,根据不同位置返回不同类型即可。可以利用这个特性把第0个位置和最后一个位置预留出来,固定把第0个item存放下拉刷新的view,把最后一个位置存放加载更多的view。 具体代码如下: /** * 实现显示头部和尾部item的adapter

Android SwipeRefreshLayout RecyclerView

戏子无情 提交于 2019-12-02 13:58:49
SwiperRefreshLayout 介绍 1、在坚直滑动时想要刷新页面可以用SwipeRefreshLayout来实现。它通过设置OnRefreshListener来监听界面的滑动从而实现刷新。也可以通过一些方法来设置SwipeRefreshLayout是否可以刷新。如setRefreshing(true),展开刷新动画。setRefreshing(false)取消刷新动画。setEnable(true)下拉刷新将不可用。 2、使用这个布局要想达到刷新的目的,需要在这个布局里包裹可以滑动的子控件,如ListView等,并且只能有一个控件。 主要方法 1、isRefreshing() 判断当前的状态是否是刷新状态。 2、setColorSchemeResources(int... colorResIds) 设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,可以设置多种不同的颜色,每转一圈就显示一种颜色。 3、setOnRefreshListener(SwiperRefreshLayout.OnRefreshListener listener) 设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等。 4、setProgressBackgroundColorSchemeResource(int colorRes

SwipeRefreshLayout和RecyclerView实现下拉刷新和加载更多(当总数据不够一页,也进行了处理)

ε祈祈猫儿з 提交于 2019-12-02 13:57:59
前言:利用SwipeRefreshLayout和RecyclerView来实现下拉刷新和加载更多,有很多的例子,但普遍都存在一个问题,当总的数据不够一屏时,FooterView也显示了,如果直接隐藏FooterView,加载更多时FooterView又不显示了,捣鼓了一阵子后,总算完美的解决了,所以记录一下,同时为了方便使用,进行了一些简单的封装。 直接进入主题,关于SwipeRefreshLayout和RecyclerView的一些基本介绍,就不在这里累述,不了解的童鞋,上网查一下吧! 一、封装自己的RefreshLayout控件 为什么要封装?为了使用方便;更为了Activity简单(MVP模式);因为Adapter的数据源类型不确定,所以采用泛型来实现。 java类和xml布局如下图 仔细的童鞋,已经发现了java类继承的是LinearLayout(xml根节点),为什么不用直接继承SwipeRefreshLayout(xml根节点)呢?其实一开始也是直接已SwipeRefreshLayout为根节点的,直接以SwipeRefreshLayout为根节点,运行后发现下拉刷新的颜色无法修改(swipeRefreshLayout.setColorSchemeColors(int color)无效),而且SwipeRefreshLayout.setRefreshing(false