今天还是给大家带来自定义控件的编写,自定义一个ListView的左右滑动删除Item的效果,这个效果之前已经实现过了,有兴趣的可以看下Android 使用Scroller实现绚丽的ListView左右滑动删除...接下来就是手指在屏幕上面滑动的处理方法handleActionMove(),这个方法就稍微的复杂些,我们需要根据手指在X轴的滑动距离和Y轴的滑动距离来判断是ListView item的水平滑动还是ListView...()就实现了item滑动和透明度渐变的效果,为了使得我们在滑动item的时候,ListView不上下滚动,我们必须返回true来屏蔽ListView的上下滚动,这里需要我们要非常熟悉Android的事件分发机制...,这里我就不说明了,大家不了解的去网上找找相关的文章看看 还有一个问题,就是当我们滑动ListView的item的时候,会伴随着item的点击事件,这不是我们想要的效果,所以当Item滑动的时候我们需要取消...的左右滑动删除item的效果啦,但是还有一个效果,item删除之后,ListView的其他item向上或者向下缓缓滑动的效果,实现这个也很容易,就是动态设置item的高度,item高度逐渐变小,这样其他的
由于数据较少,如果listview滑动感觉不怎么美观,于是想要Listview禁止滑动,其实也很简单,只要拦截listview的Ontouch事件就可以了具体代码如下:`ListView lv = (ListView...) findViewById(R.id.listView); lv.setOnTouchListener(new OnTouchListener() { @Override...default: break; } return true; } });` 这样处理就能禁止listview...的滑动了 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163274.html原文链接:https://javaforall.cn
SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时 SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏产生惯性滑动时...*/ private boolean scrollFlag = false;// 标记是否滑动 private int lastVisibleItemPosition;// 标记上次滑动位置...listView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged
无论是SingleChildScrollView、NestedScrollView还是CustomScrollView,在嵌套ListView或其他可以滑动的widget的时候,导致滑动冲突或卡顿等,...是因为二者都有可滑动属性,所以解决办法就是禁掉二者其一的滑动,一般选择子widget即ListView。
本文试着采用 NestedScrollView 嵌套 ListView的方法来实现折叠效果。具体结果如图所示: ?...parallax视差效果 将 app:layout_behavior="@string/appbar_scrolling_view_behavior"指定给NestedScrollView,即当该控件滑动的时候...解决NestedScrollView嵌套listView问题。 貌似网上一抓一大把,本文采用其中之一方案,复写listView。...public class NoScrollListView extends ListView { public NoScrollListView(Context context) {...MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } } 解决NestedScrollView嵌套的listView
我们在开发过程中 用到listview控件的时候,会碰到这样的一个小问题,就是 上下滑动的时候 会发现 上面的下面的边上会有阴影,那么怎么去掉这个阴影呢?...就类似这样的 ,很简单 在listview中 设置属性 android:background="@color/white" 和android:cacheColorHint="#00000000..." <ListView android:id="@+id/listview1" android:layout_width="fill_parent" ...="300dip" android:background="@color/white" android:cacheColorHint="#00000000" > </ListView
今天我们就来介绍一种简单的滑动ListView来显示或者隐藏ToolBar的功能。 布局文件 下面我们来看一下这个主界面的布局文件。...实现这个效果的关键就是监听ListView的各种滑动事件,我们肯定需要借助View的OnTouchListener接口来监听各种状态。...datas)); //判断认为是滑动的最小距离(乘以系数调整滑动灵敏度) scaledTouchSlop = ViewConfiguration.get(this).getScaledTouchSlop...唯一需要注意的是:scaledTouchSlop值默认获取的是Android系统能识别的最小滑动距离。我们通过乘以相关系数,可以适当的调整滑动的灵敏度。...以上这篇ListView滑动隐藏显示ToolBar的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。
之前在使用listview进行每次通知一来,根据判断是否有这个标志,就更新listview所绑定的数据源,通知更新priceAd.notifyDataSetChanged();,也用了网上的建议使用viewHolder...进行listview的item复用机制,但还是会出现卡顿的现象,经过分析,原来是listview的item布局嵌套太多,导致刷新的时候,重绘过多,造成卡顿的现象,以下是另一片博客的分析贴出来,大家讨论感谢这位前辈...问题就在于在layout中的决定ListView或者它的父元素的height和width属性的定义了。...当发现初始化adapter的时候正常调用之后,我们再来尝试滑动listview,发现每出现一个item,当前视图显示的item又调用了一次getview,通过刚哥的这篇帖子,定位到问题在我的getview...附带刚哥的listview卡顿终极解决方案原帖:刚哥的Listview卡顿终极解决方案。
比如ListView滑动到第2行会异步加载某个图片,但是加载很慢,加载过程中ListView已经滑动到了第14行,且滑动过程中该图片加载结束。...比如ListView滑动到第2行会异步加载某个图片,但是加载很慢,加载过程中listView已经滑动到了第14行,且滑动过程中该图片加载结束, 第2行已不在屏幕内,根据上面介绍的缓存原理,第2行的view...行item图片显示错乱 这个显示错乱是指某行item显示了不属于该行item的图片。...比如ListView滑动到第2行会异步加载某个图片,但是加载很慢,加载过程中listView已经滑动到了第14行,第2行已不在屏幕内,根据上面介绍的缓存原理,第2行的view可能被第14行复用,第14行显示了第...2行的View,这时之前的图片加载结束,就会显示在第14行,造成错乱。
解决的问题有两个: 1)实现水平滑动的ListView。...android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.Scroller; /** * 重写ListView...,以达到水平滑动 */ public class HorizontalListView extends AdapterView { public...,往往我们会把这个水平ListView放到ScrollView里面(见截图实现),而这两个控件恰好滑动会有冲突,滑动水平ListView时会有卡顿,因此重写ScrollView,以达到流畅滑动: Java...android.view.View; import android.widget.ScrollView; /** * 重写ScrollView,以解决ScrollView与水平listView
但是在ScrollView+ListView的布局画好后,发现整个界面都无法滚动,而且ListView只显示了第一条元素。...问题分析: 由上面那个提示可以看到,正常情况下ScrollView下是不允许再包含一个可滑动的View的,为什么呢?...查询很多资料后,得到了这个解决办法: 一种解决办法: 有网友试过,将ListView的layout_height设置为一个定值,比如说400dp,就可以有滑动的效果。...但是ListView只能显示部分元素,这不是我们想要的结果。 所以就需要一种方法可以根据ListView中Item数量,动态设置ListView的height,使全部item得到显示。...) + listView.getPaddingTop() + listView.getPaddingBottom(); listView.setLayoutParams(params);
写在前面: 在上篇文章中说过对于像 RecyclerView 或者 ListView 等等此类在有限屏幕中展示大量内容的控件,复用的逻辑就是其核心的逻辑,而关于复用导致最常见的 bug 就是复用错乱。...复用错乱的解决办法 本文的前半部分很简单的,以为关于复用错乱,RecyclerView 已经有他的前辈 ListView 替它踩了很多坑了。...虽然他们的复用逻辑是有差异的,例如 ListView 只有两层缓存,但是 RecyclerView 可以理解为有四层;ListView 缓存的单位是 view,而 RecyclerView 缓存的单位是...这样就发生了图片的错乱。...当然有些特殊的情况,某些位置就不能调用 onBindViewHolder,没关系,可以监听 RecyclerView 的滑动,当滑动停止的时候,再调用 notify 刷新下列表也是可以的。
做侧滑删除网上有很多方案,比如重写Listview实现滑动的监听,今天说下一个SwipeListView,这个是之前一个朋友在网上开源的一个封装组件,能够适用于多种情况,项目地址:https://github.com...但是在调试运行的滑动删除数据的时候,却出现了一个问题,删除位置错乱,删除的第一个数据,却删除了最后一个,于是找问题呗,我首先用listview试了下,数据是没有问题的,那么说明是删除的时候删除的控件对位置的计算错误了...SwipeMenuListView) parent); menuView.setOnSwipeItemClickListener(this); SwipeMenuListView listView...SwipeMenuListView) parent; layout = new SwipeMenuLayout(contentView, menuView, listView.getCloseInterpolator...(), listView.getOpenInterpolator()); layout.setPosition(position); //
不可滑动的ListView (RecyclweView类似) public class NoScrollListView extends ListView { public NoScrollListView...super.onMeasure(widthMeasureSpec, mExpandSpec); } } 用于情况: 社交,社区APP ,例如 QQ空间,一条说说,说说下面的评论用不可滑动的...ListView来展示 -----------------------------------------------------------------------------------------...---------------------------- 不可滑动的GridView public class NonScrollGridView extends GridView { public
1.灰色覆盖,或者有一层颜色在上面 这个问题应该是 你给listView加了风格,或者给当前的Window加了风格,因为surfaceView,如果你不设置,应该也有一个默认的颜色值 在listView...滑动的时候,每个item应该是都会被重绘的,至少layout事件会走的,导致了surface上面有一层颜色,这个是第一个问题, 2.ListView里面出现视频画面残留 这个问题很尴尬,也是在listView...在滑动的时候,但是视频又在播放,而且如果你有切换横竖屏的话,这个问题将变得尤为严重, 具体的原因应该是这样的:本来surfaceView是在item上的,item是一个view,这个播放视频的时候,是由...然后是如果不发生横竖屏切换,也会有残影留下来,是为什么,我想了下原因: 是因为surfaceView他有个特点,当你从window上拿到一个区域的时候,这个区域有些限制, 最显著的特点就是:window给你的区域,你不能滑动...,不能平移,不能放大缩小,等等, 因为你申请的surfaceView就只有那么大,不能像平常普通的view一样随便的改变大小,位置,透明度,等等, 那么你在listView滑动的时候,虽然item变了,
ScrollView中嵌套listview时,当listview自动加载时,会自动滑动到scrollview到底部。...解决办法 一、 在ListView加载数据完成时候: list_view.post { scrollView.smoothScrollTo(0,0)} 二、 在ListView的父节点上添加属性:
listview还未刷新完成,导致测量的高度不对,就会消失,像当前组已关闭这种,现在这个问题还没有想到办法解决的,试过比较多的方法,添加接口让子listview 刷新完成后再去更新父listview,但还是没有作用...listview是默认不显示的,当点击父listview去张开子listview,父listview应该会再次刷新,但子listview展开是可以的,然后下一次更新数据源的时候子listview又会自动关闭...,我猜应该是在刷新子listview的时候,父listview先更新完成,子listview的高度测量就没有对!...下面是我的源码 listview 嵌套listview都有个高度测量的问题,在更新的时候动态更新子listview就,下面是布局源码 <?...listView,GroupInfo groupinfo) { //获取listView的adapter ListAdapter listAdapter = listView.getAdapter
今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载。...* 具体点,只有当我的listview滑动到最顶部的时候,这时候下拉才执行刷新操作;只有当我的listview滑动到最底部的时候,这时候上拉才执行加载操作。 那么怎么判断listview的滑动位置呢?...底部的判断,根据listview中的最后一个item的底部与第一个item的顶部的距离是否为整个listview的高度。...上面的两个想法代码实现如下: private void setLiseners() { // listview设置滑动监听 lsv_new_house.setOnScrollListener...以上这篇Android中判断listview是否滑动到顶部和底部的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
前言 该控件的优点: 1.无论是在RecyclerView,ListView,还是LinearLayout等,只要是ViewGroup用该控件都能实现侧滑。...2.控件的手势滑动冲突已解决,不会出现嵌套到ScrollView等控件出现滑动不流畅的情况 3.控件使用简单,只需要在xml外套一层该控件就好了,秒接入 4.点击事件很方便,原来什么写法就什么写法...3.因为RecyclerView中有复用Item的情况,针对这种情况的解决方案 因为item复用会使得当我们滑出某个menu的时候,再进行RecyclerView的上下滑动时,会使得其他的Item也滑出了...menu,这就是item复用导致了布局错乱,所以针对这类型的问题的话,我在这里已经提供了OnSwipeStateChangeListener接口,在这里你们可以记录下滑动的状态,在onBindViewHolder...onSwipeStateChange(boolean open) { person.setOpen(open); } }); } 如上代码就可以解决Item复用导致布局错乱的问题了
今天碰见一个问题在RecyclerView中,用状态去记录RadioButton是否被选中,结果状态被修改,导致状态错乱。...RadioButton状态 reminderBean.setRbnMl(isChecked);//存储右侧RadioButton状态 })); 当出现条目过多时,进行上下滑动...从而出现位置记录错乱。 最后在setOnCheckedChangeListener中方法添加下列代码即可。 //判断该RadioButton当前是否处于按下状态 if (!
领取专属 10元无门槛券
手把手带您无忧上云