- Recycler View 适配器
桥北_2676
publicclassMyAdapterextendsRecyclerView.AdapterimplementsView.OnClickListener{privateArrayListmList;publicMyAdapter(ArrayListmList){this.mList=mList;}@OverridepublicHolderonCreateViewHolder(ViewGroupp
- 给Recyclerview添加ITEM的点击事件
hekung
主要入手点:自定的Adapter中自定义的ViewHolder,持有每个Item的的所有界面元素。Item的点击事件可通过view的OnClick来实现。如果我们要在Activity中监听到item的点击,需要在Adapter中定义一个回调接口。如下:publicinterfaceOnItemClickListener{voidonItemClick(Viewview,intposition);/
- 神奇的ItemTouchHelper
笔墨Android
XSize的主页device-2018-03-30-193500.gif本文知识点:常用API的说明ItemTouchHelper的使用案例常见的使用案例1.常用的API说明getMovementFlags(RecyclerViewrecyclerView,RecyclerView.ViewHolderviewHolder)主要的作用是用来返回可以滑动的方向,主要是处理滑动方向的!分为上下滑动和左
- RecyclerView缓存机制与性能优化
wenxiaohua
ViewHolder的属性ViewitemView:对应RecyclerView的子ViewintmPosition:View当前对应数据在数据源中的位置intmOldPosition:View上次绑定的数据在数据源中的位置longmItemId:可以判断ViewHolder是否需要重新绑定数据intmItemViewType:itemView对应的类型intmPreLayoutPosition:
- RecyclerView+ListView缓存类(ViewHolder)封装
Parcelable
Android学习之路代码笔记
简化代码,简单封装:publicclassBaseViewHolerextendsRecyclerView.ViewHolder{privateContextcontext;//行布局的viewprivateViewmView;//用来装载id的集合用法和map类似privateSparseArraysparseArray;publicBaseViewHoler(ViewitemView,Cont
- Android --- onCreateViewHolder和onBindViewHolder两者关系和调用次数
梁同学与Android
Android项目开发笔记android
onCreateViewHolder():负责承载每个子项的布局。onBindViewHolder():负责将每个子项holder绑定数据。俩参数是“RecyclerView.ViewHolderholder”、“intposition”。首先,onBindeViewHolder方法的调用时机是item出现(或将要出现)在屏幕上时,这时需要向传入的viewHolder中填充数据等操作。然后,onC
- Android --- Glide加载图片时候调用asBitmap()方法的时候总是报错,点不出来?
梁同学与Android
Android项目开发笔记androidGlide的asBitmap
今天写Glide加载图片的时候,网上给的例子全都是这样写的很明显.asBitmap()在load后面,放到我的代码里就会报错,如下:最后查了半天度娘才发现要在with()之后添加asBitmap(),而不是load真的坑啊。正确代码如下:ImageViewimageView=baseViewHolder.getView(R.id.iv_image_id);Glide.with(context).a
- Android 基础技术——列表卡顿问题如何分析解决
我不勤奋v
Android基础技术android
笔者希望做一个系列,整理Android基础技术,本章是关于列表卡顿问题如何分析解决onBindViewHolder优化是否有耗时操作、重复创建对象、设置监听器、findViewByID、局部的动画对象等操作是否存在内存泄漏发生内存泄露,会导致一些不再使用到的对象没有及时释放,这些对象占用了宝贵的内存空间,很容易导致后续需要分配内存的时候,内存空间不足而出现OOM(内存溢出)。无用对象占据的内存空间
- RecyclerView完全解读
风起云涌~
java开发语言
一,概述本文,笔者通过动态调试,来理解RV的缓存机制,并记录其重要成员的变化,来完全解读RV的实现过程。感兴趣的读者可将本文作为试错参考,去主动阅读源码。二,缓存池RecyclerView的核心是缓存复用,因此必须搞清楚Recycker的几个缓存池。笔者根据其注释以及实际调试,得到如下结论:mAttachedScrap是仍附着在RecyclerView的ViewHolder,可见。mChanged
- Android 基础技术——RecyclerView
我不勤奋v
Android基础技术androidandroid基础
笔者希望做一个系列,整理Android基础技术,本章是关于RecyclerViewRecyclerView对比ListView的优点Adapter面向的是ViewHolder不是View,可以省略convertView.setTag和getTag这些步骤可以设置布局管理器:竖向、横向、瀑布流方式可以设置Item的间隔样式Recycleview去掉了一些api,比如setEmptyview,onIt
- RecyclerView 的使用以及贝塞尔曲线的应用(仿外卖加入购物车效果)
沉默之言
image由于RecyclerView是support-V7包中的新组件,使用时需要导入com.android.support:recyclerView-v7:21.0.2的依赖,它的任务是回收和定位屏幕上的View。列表项View能够显示数据还需要两个类的支持:ViewHolder子类和Adapter子类。ViewHolder只做一件事:容纳View视图,创建ViewHolder子类示例如下:A
- Android组件RecyclerView中onBindViewHolder方法对修改数据显示错误解决
胡子洲
Androidandroidpython开发语言
ViewHolder不可复用:虽然这种方法简单直接,但并不推荐频繁使用,因为它可能导致性能问题。你可以通过调用viewHolder.setIsRecyclable(false)来实现。viewHolder.setIsRecyclable(false)重置View状态:在onBindViewHolder方法中,确保在给View设置展示前将其状态重置为初始状态。我自己就是通过else复原状态的。//更
- RecyclerView 设置水平Item间距
一个冬季
10dp.jpg20dp.jpg需求每个Item之间需要设置间距,但是第一个和最后一个Item到RecyclerView边缘的距离要为0不能有距离。解决思路思路1、首先在item.xml里面设置marginLeft与marginRight,然后在onBindViewHolder里面获取到第一个View,动态的去修改marginLeft为0同理marginRight思路2、recyclerView.
- SimpleOnItemTouchListener
有点健忘
设置recyclerviewitem的点击事件,想偷懒,就直接在onBindViewHolder里,获取itemview然后setonclicklistener就完事了。如果想优雅一点,就用下边这种给recyclerview添加一个touchlistenerrv.addOnItemTouchListener(ItemTouchListenerRV(rv))简单的实现如下,不过这种设置完可能发现你给
- ListView的优化
安多人
每显示一个ListView就要重新找布局,找控件,可能会引起内存溢出,因此要进行优化,优化的思想是减少找布局找控件的次数。因此我们将所有的控件的id都放到一个类viewHolder中。判断view是否为空,如果为空建立一个view,然后为holder的属性赋值,并将holder的内容打包到view中,如果不为空的话,则getTag。publicViewgetView(inti,Viewview,V
- RecycleView基本使用及常见问题汇总
八哥记笔记
android
RecycleView属于android基础组件,比较常用,下面总结下其使用的基础流程及常见问题解决办法(常见问题会定期更新)基础使用首先在xml里引入RecycleView编写adapter,分以下几步1.创建自定义adapter类,创建内部类MyViewHolder,并实现RecycleView的ViewHolder,参数传递viewclassMyAdapter(valdata:List){c
- RecyclerView封装详解完美用法一
帝乙岩
android客户端控件recyclerviewandroidstudio
通过对RecyclerView的了解,个人认为此控件适用于需要listview与GridView切换的界面以及瀑布流界面。第一篇主要是listView与Gridview切换代码:一、先上RecyclerView的通用ViewHolder:packagecom.example.recyclerview;importandroid.graphics.Bitmap;importandroid.suppo
- Android 无限循环RecyclerView的完美实现方案
夜未央ぴ陌上花开丶
android
Android无限循环RecyclerView的完美实现方案方案选择方案1对Adapter进行修改网上大部分博客的解决方案都是这种方案,对Adapter做修改。具体如下首先,让Adapter的getItemCount()方法返回Integer.MAX_VALUE,使得position数据达到很大很大;其次,在onBindViewHolder()方法里对position参数取余运算,拿到positi
- 问题记录
春困夏乏秋盹冬眠_3091
1.在recyclerview的viewholder中直接开启事务,然后addfragment,一共3个页面,只有第3个崩溃。第一步,检查布局有没有空掉,检查view有没有空,都没有问题,断点显示ID在,但是报错没有这个view。最后发现viewholder的itemview没有添加进recyclerview,导致事务在activity中找不到这个ID依赖。所以,如果开启事务add或者hidere
- RecyclerView遇到的问题
KyneMaster
title:RecyclerView遇到的问题date:2020-03-1815:39:47blog:www.gitkyne.com前言recyclerview的使用不讲,此处只记录下问题,及解答目录目录.jpgviewHolder不予许在创建的时候添加到parent里问题ViewHolderviewsmustnotbeattachedwhencreated.Ensurethatyouarenot
- Android理解RecyclerView的缓存机制
码农ing
Recyclerview通过内部类Recycler管理的缓存,缓存的是ViewHolder(内部包含子View),这样在滑动时可以复用子View,在某些情况下,还可以复用子View绑定的数据。所以本质上缓存是为了减少重复绘制View和绑定数据的时间,从而提高了滑动时的性能。Recycler缓存ViewHolder对象有4个等级,优先级从高到底依次为:1、ArrayListmAttachedScra
- RecyclerView checkBox状态问题
水天滑稽天照八野滑稽石
前言最近碰到的问题,直接上图解决方案设置checkBox监听器为空及有个表来记录checkBox的状态在@Override的onBindViewHolder方法里面这样写就行@OverridepublicvoidonBindViewHolder(finalRecyclerViewAdapter.ViewHoderholder,finalintposition){holder.cb.setOnChe
- Android 万能的RecyclerView适配器(BaseRecyclerViewAdapterHelper)
pgc_tel
Android第三方库android第三方库BRVAH
引用:implementation"io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.2"BaseQuickAdapter基本使用:快速使用classTestAdapter:BaseQuickAdapter(){//自定义ViewHolder类classVH(parent:ViewGroup,valbinding:LayoutAnimatio
- ListView与RecyclerView的区别
12313凯皇
区别ListViewRecyclerView说明Adapter需继承BaseAdapter需继承RecyclerView.Adapter-ViewHolder自定义需继承RecyclerView.ViewHolderRecyclerView编写更加规范化;且RecyclerView自己复用item,ListView需自己优化(判断convertView是否为null等)LayoutManager无
- 更高效地刷新 RecyclerView | DiffUtil二次封装
Android开发指南
每次数据变化都全量刷新整个列表是很奢侈的,不仅整个列表会闪烁一下,而且所有可见表项都会重新执行一遍onBindViewHolder()并重绘列表(即便它并不需要刷新)。若表项视图复杂,会显著影响列表性能。更高效的刷新方式应该是:只刷新数据发生变化的表项。RecyclerView.Adapter有4个非全量刷新方法,分别是:notifyItemRangeInserted()、notifyItemRa
- RecyclerView嵌套RecyclerView,内层RecyclerView区域无法响应Item点击
dlihasa
问题描述项目中遇到了一个RecyclerView内嵌套RecyclerView,内层RecyclerView的区域无法响应所在Item的点击事件的问题。截图如下,整个图片部分是RecyclerView的一个Item,红框所示商品图片是内层的RecyclerView,这块区域点击无响应问题示例.png解决方式(形式不同,原理相同)方式一viewHolder.rv.setOnTouchListener
- RecyclewView的Adapter简单封装
再无离散
网上现在有好多版本的BaseVH轮子,但是使用了几个还是摆脱不了每一种场景定制一个Adapter,就好好捋了下Adapter的职能,不多说先看逻辑吧1.png1delegate就是核心了,map的k对应实体类Bean.class,Pair中F代表ViewHolder中的res文件,S就是代表ViewHolder的具体对应实现类咯2.png2这个itemCount默认还是原来的List.size,但
- Android学习笔记--RecycleView用法
Swy_ww
AndroidandroidRecycleView
1.什么是RecyclerViewRecyclerView是Android5.0materialsdesign中的组件之一。通过名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用。RecyclerView提供了一个耦合度更低的方式来复用ViewHolder,并且可以轻松的实现ListView、GridView以及瀑
- RecyclerView遇到的展示列表项的问题
biginsect
有这么一个需求:向服务器请求数据,服务器返回的数据的某些项可能为空,要求为空的数据对应的列表项不展示。开始的时候我是把list_item中的控件ID写死在ArrayList上,然后获取并在onBindViewHolder()中做展示处理。发现这种写法处理上面的需求时会很麻烦,需要多种判断。请教同事之后找到了一个方法,在获取到服务器返回的数据时,对数据进行筛选。哪一项的数据不为空则将其以及对应的ti
- RecyclerView回收复用以及LayoutManager
呓曲流觞
Android
1.滑动2.onlayout布局1.mInChangeScrap-mAttachedScrap用来缓存还在屏幕之内的ViewHolder2.mCachedView用来缓存移除屏幕之外的ViewHolder3.mViewCacheExtension开发给用户的自定义扩展缓存,需要用户自己管理View的创建和缓存4.RecyclerViewPoolViewHolder缓存池onTouchEvent-s
- jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
qiaolevip
每天进步一点点学习永无止境跨域众观千象
XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. test.html:1
- mysql 分区查询优化
annan211
java分区优化mysql
分区查询优化
引入分区可以给查询带来一定的优势,但同时也会引入一些bug.
分区最大的优点就是优化器可以根据分区函数来过滤掉一些分区,通过分区过滤可以让查询扫描更少的数据。
所以,对于访问分区表来说,很重要的一点是要在where 条件中带入分区,让优化器过滤掉无需访问的分区。
可以通过查看explain执行计划,是否携带 partitions
- MYSQL存储过程中使用游标
chicony
Mysql存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)-- -- 实例-- 存储过程名为:getUserInfo-- 参数为:date_day日期格式:2008-03-08-- BEGINdecla
- mysql 和 sqlite 区别
Array_06
sqlite
转载:
http://www.cnblogs.com/ygm900/p/3460663.html
mysql 和 sqlite 区别
SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率
MYSQL、Sybase、Oracle等这些都是试用于服务器数据量大功能多需要安装,例如网站访问量比较大的。而sq
- pinyin4j使用
oloz
pinyin4j
首先需要pinyin4j的jar包支持;jar包已上传至附件内
方法一:把汉字转换为拼音;例如:编程转换后则为biancheng
/**
* 将汉字转换为全拼
* @param src 你的需要转换的汉字
* @param isUPPERCASE 是否转换为大写的拼音; true:转换为大写;fal
- 微博发送私信
随意而生
微博
在前面文章中说了如和获取登陆时候所需要的cookie,现在只要拿到最后登陆所需要的cookie,然后抓包分析一下微博私信发送界面
http://weibo.com/message/history?uid=****&name=****
可以发现其发送提交的Post请求和其中的数据,
让后用程序模拟发送POST请求中的数据,带着cookie发送到私信的接入口,就可以实现发私信的功能了。
- jsp
香水浓
jsp
JSP初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了
JSP执行
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后
- 在 Windows 上安装 SVN Subversion 服务端
AdyZhang
SVN
在 Windows 上安装 SVN Subversion 服务端2009-09-16高宏伟哈尔滨市道里区通达街291号
最佳阅读效果请访问原地址:http://blog.donews.com/dukejoe/archive/2009/09/16/1560917.aspx
现在的Subversion已经足够稳定,而且已经进入了它的黄金时段。我们看到大量的项目都在使
- android开发中如何使用 alertDialog从listView中删除数据?
aijuans
android
我现在使用listView展示了很多的配置信息,我现在想在点击其中一条的时候填出 alertDialog,点击确认后就删除该条数据,( ArrayAdapter ,ArrayList,listView 全部删除),我知道在 下面的onItemLongClick 方法中 参数 arg2 是选中的序号,但是我不知道如何继续处理下去 1 2 3
- jdk-6u26-linux-x64.bin 安装
baalwolf
linux
1.上传安装文件(jdk-6u26-linux-x64.bin)
2.修改权限
[root@localhost ~]# ls -l /usr/local/jdk-6u26-linux-x64.bin
3.执行安装文件
[root@localhost ~]# cd /usr/local
[root@localhost local]# ./jdk-6u26-linux-x64.bin&nbs
- MongoDB经典面试题集锦
BigBird2012
mongodb
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟
- JavaScript异步编程Promise模式的6个特性
bijian1013
JavaScriptPromise
Promise是一个非常有价值的构造器,能够帮助你避免使用镶套匿名方法,而使用更具有可读性的方式组装异步代码。这里我们将介绍6个最简单的特性。
在我们开始正式介绍之前,我们想看看Javascript Promise的样子:
var p = new Promise(function(r
- [Zookeeper学习笔记之八]Zookeeper源代码分析之Zookeeper.ZKWatchManager
bit1129
zookeeper
ClientWatchManager接口
//接口的唯一方法materialize用于确定那些Watcher需要被通知
//确定Watcher需要三方面的因素1.事件状态 2.事件类型 3.znode的path
public interface ClientWatchManager {
/**
* Return a set of watchers that should
- 【Scala十五】Scala核心九:隐式转换之二
bit1129
scala
隐式转换存在的必要性,
在Java Swing中,按钮点击事件的处理,转换为Scala的的写法如下:
val button = new JButton
button.addActionListener(
new ActionListener {
def actionPerformed(event: ActionEvent) {
- Android JSON数据的解析与封装小Demo
ronin47
转自:http://www.open-open.com/lib/view/open1420529336406.html
package com.example.jsondemo;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
impor
- [设计]字体创意设计方法谈
brotherlamp
UIui自学ui视频ui教程ui资料
从古至今,文字在我们的生活中是必不可少的事物,我们不能想象没有文字的世界将会是怎样。在平面设计中,UI设计师在文字上所花的心思和功夫最多,因为文字能直观地表达UI设计师所的意念。在文字上的创造设计,直接反映出平面作品的主题。
如设计一幅戴尔笔记本电脑的广告海报,假设海报上没有出现“戴尔”两个文字,即使放上所有戴尔笔记本电脑的图片都不能让人们得知这些电脑是什么品牌。只要写上“戴尔笔
- 单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
bylijinnan
java算法面试题
import java.util.LinkedList;
/*
单调队列 滑动窗口
单调队列是这样的一个队列:队列里面的元素是有序的,是递增或者递减
题目:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.
要求:f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1
问题的另一种描述就
- struts2处理一个form多个submit
chiangfai
struts2
web应用中,为完成不同工作,一个jsp的form标签可能有多个submit。如下代码:
<s:form action="submit" method="post" namespace="/my">
<s:textfield name="msg" label="叙述:">
- shell查找上个月,陷阱及野路子
chenchao051
shell
date -d "-1 month" +%F
以上这段代码,假如在2012/10/31执行,结果并不会出现你预计的9月份,而是会出现八月份,原因是10月份有31天,9月份30天,所以-1 month在10月份看来要减去31天,所以直接到了8月31日这天,这不靠谱。
野路子解决:假设当天日期大于15号
- mysql导出数据中文乱码问题
daizj
mysql中文乱码导数据
解决mysql导入导出数据乱码问题方法:
1、进入mysql,通过如下命令查看数据库编码方式:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------+
| Variable_name&nbs
- SAE部署Smarty出现:Uncaught exception 'SmartyException' with message 'unable to write
dcj3sjt126com
PHPsmartysae
对于SAE出现的问题:Uncaught exception 'SmartyException' with message 'unable to write file...。
官方给出了详细的FAQ:http://sae.sina.com.cn/?m=faqs&catId=11#show_213
解决方案为:
01
$path
- 《教父》系列台词
dcj3sjt126com
Your love is also your weak point.
你的所爱同时也是你的弱点。
If anything in this life is certain, if history has taught us anything, it is
that you can kill anyone.
不顾家的人永远不可能成为一个真正的男人。 &
- mongodb安装与使用
dyy_gusi
mongo
一.MongoDB安装和启动,widndows和linux基本相同
1.下载数据库,
linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
2.解压文件,并且放置到合适的位置
tar -vxf mongodb-linux-x86_64-ubun
- Git排除目录
geeksun
git
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。
有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。
1. 针对单一工程排除文件
这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一
- Ubuntu 创建开机自启动脚本的方法
hongtoushizi
ubuntu
转载自: http://rongjih.blog.163.com/blog/static/33574461201111504843245/
Ubuntu 创建开机自启动脚本的步骤如下:
1) 将你的启动脚本复制到 /etc/init.d目录下 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限 $ sudo chmod 755
- 第八章 流量复制/AB测试/协程
jinnianshilongnian
nginxluacoroutine
流量复制
在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行并发
- 电商系统商品表设计
lkl
DROP TABLE IF EXISTS `category`; -- 类目表
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `category` (
`id` int(11) NOT NUL
- 修改phpMyAdmin导入SQL文件的大小限制
pda158
sqlmysql
用phpMyAdmin导入mysql数据库时,我的10M的
数据库不能导入,提示mysql数据库最大只能导入2M。
phpMyAdmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
- Tomcat性能调优方案
Sobfist
apachejvmtomcat应用服务器
一、操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。
【适用场景】 任何项目。
二、Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。
J
- SQLServer学习笔记
vipbooks
数据结构xml
1、create database school 创建数据库school
2、drop database school 删除数据库school
3、use school 连接到school数据库,使其成为当前数据库
4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一