首页 > TAG信息列表 > holder

Muduo库

MutexLock #include <boost/noncopyable.hpp> #include <thread> #include <assert.h> class MutexLock : boost::noncopyable { public: MutexLock():holder_(0){ pthread_mutex_init(&mutex_,NULL); } ~MutexLock(){ p

Android-SurfaceView-多线程绘图

以前学习过分形几何,很有意思,由简单的数学公式迭代计算得到的分形图形,放大后不会丢失细节。典型的如Mandelbrot图形: 计算方式也不复杂,由f(z) = z^2 + c,迭代计算 z1=f(z0), z2=f(z1), z3=f(z2)...其中z, c都是复数,可以表示为复平面上的一个点,而每个点的计算次数可以映射为一个颜色

notifyDataSetChanged() 现在不建议用了,删除的时候会导致position不变,导致删除这边,却删除的另一条

解决:    将之前的position传入改为: holder.getAbsoluteAdapterPosition()现在因为不建议调用notifyDataSetChanged() 来整体刷新数据,所以删除了以后,position之后的position没有变化,但是实际上是要变化的,所以才会出现删除这条,却删除了另一条。 holder.getAbsoluteAdapterPositi

StockQueryAdapter

package com.example.wms; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; imp

ListView上拉加载,下拉刷新功能

直接上代码了,先上activity代码,下载就不用说了,直接在日志那地方写就行,主要是上拉,需要用到listview自己的监听事件,依靠滑动的对应值来加载数据,然后并传入数据适配器中,来对尾布局内的值进行修改。 public class MainActivity3 extends AppCompatActivity { private static fina

Android购物商城界面

activity_main.xml 在res/layout文件中,放置一个TextView控件用于显示购物商城界面的标题,放置一个ListView控件用于显示购物商场界面的列表 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:a

RecyclerView 局部刷新的坑,34岁程序员年薪50w

@param position 下标@param packageName 要替换的文本名 */ public void updateItem(int position, String packageName) { if (position >= 0 && position < data.size()) { data.get(position).setPackageName(packageName); } notifyDataSetChanged(); } 踩坑 而我们要做

GridView 设置选中状态,安卓移动开发实验报告

if (PullToRefreshGridView.MODE_PULL_DOWN_TO_REFRESH == mPullRefreshGridView.getCurrentMode()) { Toast.makeText(MainActivity.this, “下拉刷新”, Toast.LENGTH_SHORT).show(); mPullRefreshGridView.onRefreshComplete(); } else if (mode == PullToRefreshGridView

Android RecyclerView 绘制流程及Recycler缓存,androidapp保活

addView(view, 0); } } else { if (mShouldReverseLayout == (layoutState.mLayoutDirection == LayoutState.LAYOUT_START)) { addDisappearingView(view); } else { addDisappearingView(view, 0); } } //测量被添加的 RecyclerView 中的子 ItemView 的宽高

网格视图GridView

首先建立gridViewActivity的Java文件 1 public class GridViewActivity extends AppCompatActivity { 2 private GridView GV; 3 @Override 4 protected void onCreate(@Nullable Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState);

RecyclerView实现多种item布局

RecyclerView实现多种item布局 1.首先我们重写了getItemViewType这个方法,在这个方法中根据position对item对象做了一些判断, 2.具体为每种viewType引入其对应的布局,这样就基本实现了多种item布局,但是仅仅是这些还不够,因为我们还要对每种item设置数据,所以还要对每种item写一个V

真正带你搞懂-RecyclerView-的缓存机制,再也不怕面试被虐了

mState.mLayoutStep = State.STEP_ANIMATIONS; onExitLayoutOrScroll(); resumeRequestLayout(false); } 这里onLayoutChildren方法是必走的,而mLayout是RV的成员变量,也就是LayoutManager,接下来我们去LinearLayoutManager里看看onLayoutChildren方法做了什么。 //已省略无关

真正带你搞懂-RecyclerView-的缓存机制,再也不怕面试被虐了

// fill towards end fill(recycler, mLayoutState, state, false); endOffset = mLayoutState.mOffset; } else { // fill towards end fill(recycler, mLayoutState, state, false); // fill towards start fill(recycler, mLayoutState, state, false); startOffset = mLa

真正带你搞懂-RecyclerView-的缓存机制,再也不怕面试被虐了(1)

RV从无到有的加载过程 首先我们看一下RV从无到有是怎么显示出数据来的。大家因该知道一个视图的显示要经过onMeasure、onLayout、onDraw三个方法,那么我们就先从第一个方法onMeasure入手,来看看里面做了什么。 @Override protected void onMeasure(int widthSpec, int heightSp

android 获取通讯录并显示listview,android内录音频

import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.text.TextUti

Android记录21-关于ListView数据错乱的解决方案(1),移动跨平台开发框架移动

private Context mContext; @Override public int getCount() { return 0; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View

Android应用开发-小巫CSDN博客客户端之获取评论列表,androidstudio中文社区

import com.xiaowu.blogclient.util.Constants; import com.xiaowu.blogclient.util.DateUtil; import com.xiaowu.blogclient.util.HttpUtil; import com.xiaowu.blogclient.util.JsoupUtil; import com.xiaowu.blogclient.util.URLUtil; /** 2014/8/13 博客评论列表 @au

Android从源码分析RecyclerView四级缓存复用机制一(缓存ViewHolder)

//一级缓存中用来存储屏幕中显示的ViewHolder final ArrayList mAttachedScrap = new ArrayList<>(); ArrayList mChangedScrap = null; //二级缓存中用来存储屏幕外的ViewHolder final ArrayList mCachedViews = new ArrayList(); //暂可忽略 mAttachedScrap的不可变视图 pr

Android 学习笔记--android——listview总结

总结listview:1、创建-->高度match2、创建-->行布局3、找到listview控件4、初始化数据5、创建适配器对象 baseAdaptergetview :决定了显示的样式以及内容查找当前布局对象里面的控件行布局对象.findviewById()getCount :决定listview的显示行数6、设置适配器 listview优化: 1、用完

Druid源码阅读1-DruidDataSource数据结构

DruidDataSource是DruidCP最关键的类之一,承载了连接池的启动、关闭、以及连接的获取和管理等功能。 其内部关键的的数据结构如下表: nametype说明connectionsvolatile DruidConnectionHolder[]pool的关键数组,存放连接,实际上是DruidConnectionHolder的数组。Connection由Druid

Android 相关源码分析,真服了

public class OkHttpUserService implements UserService { @Override Call<User> getASingleUser(String username) { String url = buildUrl(annotations, username); okhttp3.Call okHttpCall = new OkHttpClient().newCall(new Request.Bui

RecyclerView的复用机制,薪资翻倍

final View view = mViewCacheExtension .getViewForPositionAndType(this, position, type); //你返回的View要是RecyclerView.LayoutParams属性的 if (view != null) { holder = getChildViewHolder(view); //把它包装成一

RecyclerView缓存解释

1、一级缓存 mAttachedScrap: 缓存屏幕中可见范围的ViewHolder。他还可以保存item自带的动画效果,因为这些viewholer数据上是没有改变的,只是位置改变而已,所以放置到scrap最为合适。 final ArrayList mAttachedScrap = new ArrayList<>(); 2、二级缓存 mCachedViews: 缓存滑动时即将与

慢SQL治理分享

简介: 这里的慢SQL指的是MySQL慢查询,是运行时间超过long_query_time值的SQL。真实的慢SQL通常会伴随着大量的行扫描、临时文件排序或者频繁的磁盘flush,直接影响就是磁盘IO升高,让正常的SQL变成了慢SQL,大面积执行超时。本文将和大家分享慢SQL的治理过程。 作者 | 史伟民来源 | 阿

永久移动到sonictl.github.io This blog is out of date. Check out my new blog holder : sonictl.github.io

永久移动到sonictl.github.io 永久移动到sonictl.github.io 永久移动到sonictl.github.io 永久移动到sonictl.github.io This blog is out of date. Check out my new blog holder: sonictl.github.io 本网站上的博文已经停止维护/更新了。 请移步到新的博客空间:sonictl.github.