position

为RecyclerView打造通用Adapter

风流意气都作罢 提交于 2020-03-21 16:57:17
##RecycleView简单介绍 RecyclerView控件和ListView的原理有非常多相似的地方,都是维护少量的View来进行显示大量的数据。只是RecyclerView控件比ListView更加高级而且更加灵活。当我们的数据由于用户事件或者网络事件发生改变的时候也能非常好的进行显示。和ListView不同的是,RecyclerView不用在负责Item显示相关的功能。全部有关布局、绘制、数据绑定等都被分拆成不同的类进行管理。同一时候RecyclerView控件提供了下面两种方法来进行简化和处理大数量集合: 1.基本使用 RecycleView的基本使用 RecycleView导包(可有可无) dependencies中加入 compile'com.android.support:recyclerview-v7:23.1.1' 在布局文件里定义 <android.support.v7.widget.RecyclerView android:id="@+id/rcv_history" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> 3.对其进行初始化 rcv_history =

常见的布局方式实现

心已入冬 提交于 2020-03-21 16:42:22
单列布局 HTML: <div class="parent"> <div class="child"></div> </div> 一.水平居中(常见的,那些什么table,导致性能不好的就不说了) 实现效果: 1.使用inline-block和text-align实现 <style> .parent{ text-align: center; border: 1px solid red; } .child{ width: 50px; height: 50px; border: 1px solid #667766; background-color: bisque; display: inline-block; } </style> 原理: ①.text-align是指定元素文本的水平对齐方式,可继承, ②.inline-block行内块级元素,就是还是行内元素的排列方式不换行,但是支持块级元素有的宽高和上下padding 多个inline-block子元素会怎样? 多个inline-block的间隙解决办法:在父级元素中加入font-size:0; 优点:兼容性好, 缺点:需要同时设置子元素和父元素 2.使用margin:0 auto实现 .child{ width: 50px; height: 50px; border: 1px solid #667766; background

android 轮播图

点点圈 提交于 2020-03-21 16:15:48
轮播图是很常用的一个效果 核心功能已经实现 没有什么特殊需求 自己没事研究的 所以封装的不太好 一些地方还比较糙 为想要研究轮播图的同学提供个参考 目前测试图片为mipmap中的图片 没有写从网络加载图片 可自行根据需求在getShowView()方法中修改 1.定时切换 通过handle延时发送通知改变界面 然后在切换viewpage的界面之后 再次发送此延时通知 就ok咯 还可以通过timer定时器实现 2.无限轮播效果 如果我们只是在自动轮播到最后一页 然后进行判断让切换到第一页 这样是可以实现轮播的效果 但是 有两个问题 切换从最后一页切换到第一页的时候有一个很明显的回滚效果 不是我们想要的 当我们手动滑动的时候 在第一页和最后一页的时候 无法继续左右滑动 因为已经没有下一页了 先看张图(偷来的) 不得不说这位兄弟的图p的很形象 简直完美 虽然看到的是三张图 实际上是五张 数据多的时候也按照这种方式添加数据 当view4的时候自动切换到view5时 进行判断让到切换到view2 这样造成的感觉就是最后一张下来是第一张 我们利用viewpage自带的方法切换界面立即切换没有滚动效果 当图片一样的时候是看不出图片变化的 setCurrentItem(int item, boolean smoothScroll) 第二个参数设置false 界面切换的时候无滚动效果 默认true

day15 CSS JS DOM初探

老子叫甜甜 提交于 2020-03-21 09:58:02
居中 line-hight 是上下 text-line 是左右 实现一个返回顶部的功能: 1 先写好CSS 2 写动作JS 写一个悬浮菜单: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .pg-header{ margin: 0 auto; height: 48px; width:980px; background-color: aquamarine; color: coral; position: fixed; top: 0; left: 20px; right: 20px; line-height: 48px; text-align: center; } .pg-body{ margin: 0 auto; background-color: #dddddd; width:980px; height: 5000px; margin-top: 50px; } </style> </head> <body> <div class="pg-header">此处为菜单</div> <div class="pg-body">此处为内容</div> </body> </html> 效果: 上下滚动菜单始终固定在顶部 实现一个点赞按钮的效果: <

尽可能使用const

我怕爱的太早我们不能终老 提交于 2020-03-20 21:59:13
1、const用于定义常量 编译器可以对其进行静态数据类型检查 2、const可用于修饰形式参数 若你在编写函数时,并没有打算改变参数,这是就应该将参数的类型设置为const reference,这样既可以保证参数的常量性,又提高了传值的效率 3、const修饰返回值 若函数的返回值时const pointer,则返回值不可被直接修改,而且返回值必须赋值给const同种类型 令函数返回一个常量值,该const为顶层const,编译器会直接忽视其作用,但有时会降低因用户的错误而造成的意外 1 class Rational {}; 2 const Rational operator*(const Rational& lhs, const Rational& rhs); 3 4 Rational a, b, c; 5 6 (a * b) = c; //编译错误 7 if ((a * b) = c) //编译错误 4、const成员函数 可以保证该成员函数可以作用于const对象身上 两个成员函数如果只是常量性(constness)不同,可以被重载 bitwise constness   成员函数只有在不更改对象的非静态成员变量时才可以说是const,即不更改对象内的任何一个bit,但是有一种特殊情况,类的数据成员为指针,改变指针所指之物并不会改变对象的常量性,可以通过bitwise

34. Find First and Last Position of Element in Sorted Array

别来无恙 提交于 2020-03-20 12:35:46
https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ 给定一个有序数组,可能包含有重复元素,问target在数组中的起始位置和结束位置,要求复杂度 \(O(logN)\) ------------------------------------------------------------------ Example 1: Input: nums = [5,7,7,8,8,10], target = 8 Output: [3,4] Example 2: Input: nums = [5,7,7,8,8,10], target = 6 Output: [-1,-1] Example 2: Input: nums = [5,7,7,8,8,10], target = 5 Output: [0,0] class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { int lo = 0, hi = nums.size()-1; if (hi==-1) { vector<int> result={-1,-1}; return result; } while(lo < hi

python 实现随机漫步

China☆狼群 提交于 2020-03-20 10:59:23
1. 纯python In [247]: import random .....: position = 0 .....: walk = [position] .....: steps = 1000 .....: for i in range(steps): .....: step = 1 if random.randint(0, 1) else -1 .....: position += step .....: walk.append(position) .....: In [249]: plt.plot(walk[:100]) In [250]: plt.show() View Code numpy实现 nsteps=1000 draws=np.random.randint(0,2,size=nsteps) steps=np.where(draws>0,1,-1) walk=steps.cumsum() plt.plot(walk) plt.show() View Code np.random.randint (low , high = None , size = None , dtype = 'l' ) 参数如下: low: int 生成的数值最低要大于等于low。 (hign = None时,生成的数值要在[0, low)区间内) high: int (可选)

Android BaseAdapter

☆樱花仙子☆ 提交于 2020-03-20 03:08:40
ListView显示与缓存机制: 只会加载当前屏幕所要显示的数据。显示完成就会被回收到Recycler中。 BaseAdapter 基本结构: public int getCount(); // 适配器中数据集中数据的个数 public Object getIten(int position); //获取数据集中与指定索引对应的数据项 public long getItemId(int position); //获取指定行对应的ID public View getView(int position,View convertView,ViewGroup parent); //获取每一个Item的显示内容 ViewHolder优化BaseAdapter: 创建Bean对象,用于封装数据。 在构造方法中初始化用于映射的数据LIST. 创建ViewHolder类,创建布局映射关系。 判断convertView,为空则创建,并设置TAG,否则通过TAG来取出ViewHolder 给ViewHolder中的控件设置数据。 public class Adapter extends BaseAdapter{ private List<ItemBean> list ; private LayoutInflater inflater ; public Adapter(List<ItemBean>

Adapter的getView方法详解

爱⌒轻易说出口 提交于 2020-03-20 03:05:41
来自: http://blog.csdn.net/yelbosh/article/details/7831812 BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter,我们经常使用的ListView 的adapter,即SimpleAdapter,是继承自BaseAdapter的,BaseAdapter是一个基类,没有实现绑定数据的功能,SimpleAdapter实现了基本控件的绑定,如TextView,Button,ImageView).已经为我们实现好了数据优化工作,这些适配器使用相同组件动态绑定数据的方式进行优化。为什么需要优化呢?因为如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?这不可能,因为内存有限制。实际上Android为你缓存了视图。Android中有个叫做Recycler的构件,下图是他的工作原理: 如果你有10亿个项目(item),其中只有可见的项目存在内存中,其他的在Recycler中。其实我的理解Recyler就是一个队列,用来存储不在屏幕范围内的item,如果item滚出屏幕范围,那么就入队,这里的滚出是完全滚出,即边界等也要完全滚出。如果新的item要滚进来

zepto中的动画+Ajax+touch模块+zepto插件

蹲街弑〆低调 提交于 2020-03-18 23:02:57
zepto中的动画 zepto中不具备动画模块,需要单独引入 fx.js 和 fx_methods.js https://github.com/madrobby/zepto toggle 元素显示与隐藏 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>zepto</title> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <style> </style> </head> <body> <div>box</div> <button id="btn">点我</button> <script src="js/zepto.min.js"></script> <script src="js/fx.js"></script><!-- 动画模块 --> <script src="js/fx_methods.js"></script> <script> $("#btn").click(function(){ $("div").toggle(); $("div").toggle("slow"); $("div").toggle(3000); }) </script> </body> <