常规需求: 外层RecyclerView嵌套内层RecyclerView , 在上下滑动的时候会出现item数据以及view的显示异常. 解决办法: 1.重写  getItemViewType  方法 /** * 重写 避免滑动过程界面混乱 * @param position * @return */ @Override public int getItemViewType(int position) { return position; } 2.因为是RecyclerView的复用机制导致的问…
①NestedScrollView与RecyclerView嵌套,导致滚动惯性消失 解决:mRecyclerView.setNestedScrollingEnabled(false); ②NestedScrollView中嵌套其他布局和RecyclerView后,不会滚动到屏幕顶部 解决给最顶部的布局View设置下requestFocus(); <?xml version="1.0" encoding="utf-8"?> <LinearLayout…
我们在使用RecyclerView嵌套至ScrollView内的时候 RecyclerView不在屏幕内的数据会不显示出来,这里是一个坑,我们需要重写RecyclerView /** * Created by Arcturis lfy on 2019/3/26. * <p/> * 解决ScrollView内嵌套引起MyRecyclerView显示不全的问题 * <p>Copyright</p> */ public class MyRecyclerView extends…
编写RecyclerView.ItemDecoration时,在onDraw方法中,Drawable的高度等于RecyclerView的高度减去RecyclerView的上下padding. @Override public void onDraw(Canvas c, RecyclerView parent, State state) { int top = parent.getPaddingTop(); int bottom = parent.getHeight() - parent.getP…
先描述一下这个小bug:简单的TextView嵌套RecyclerView作为itemView时,可能会在文本中出现布局覆盖的现象,itemView的布局其实很简单,就是一个RelativeLayout嵌套TextView的布局,两个控件的高度都是wrap_content,在预览时显示都是正常的,但是跑到真机测试时,就会发现作为每个itemView的TextView底部都会有稍微一点覆盖,导致文字有一些遮挡. 其实这个bug很容易解决,毕竟不是网上那种RecyclerView嵌套GridView…
最近的项目中实现订单确定页面.需要使用ScrollView嵌套RecyclerView,当RecyclerView中的item数量比较多时,就会出现item只显示一部分数据,并没有将用户勾选的商品数量全部显示出来,这个时候就需要我们做一下处理了. 下面来说两种解决方案: 1.使用5.0的新控件NestedScrollView替换ScrollView.NestedScrollView支持嵌套滑动,既能填item显示不全的坑,又可以填嵌套滑动卡顿的坑.不了解的童鞋可以去学习一波,这里就不做详细的说明…
原理 RecyclerView嵌套RecyclerView的条目,项目中可能会经常有这样的需求,但是我们将子条目设置为RecyclerView之后,却显示不出来.自己试了很久,终于找到了原因:必须先设置子RecylcerView的高度.你要花精力确定出子RecyclerView里面条目的高度,然后从而确定子RecyclerView的高度,设置给子RecylcerView,这样做RecyclerView就可以正确显示出子ReclyclerView. 效果 代码 首页布局就是一个竖直排列的Recyc…
TCP端口复用引发的异常,用setsockopt来解决 我们在并发连接一个服务端时候他会出现这种情况 OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次. 假如端口被socket使用过,并且利用socket.close()来关闭连接,但此时端口还没有释放,要经过一个TIME_WAIT的过程之后才能使用,这是TNN的相当烦银的,为了实现端口的马上复用,可以选择setsockopt()函数来达到. 端口复用的实现,我在这里用Python举个T…
因修改/etc/ssh权限导致的ssh不能连接异常解决方法 现象: $ssh XXX@192.168.5.21 出现以下问题 Read from socket failed: Connection reset by peer 起因: $sudo chmod 777 /etc/  -R (千万不要做,这是一个误操作) 导致了上面的结果 解决方法: #chmod 400 /etc/ssh/* 在重新连接就可以了. 本文来自:Linux学习网…
1. 抛出异常 1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常. 该语句的格式为: throw 表达式; 如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与catch语句的异常类型相匹配.由于C++使用数据类型来区分不同的异常,因此在判断异常时,throw语句中的表达式的值就没有实际意义…