关于gridview多item选中放大问题。
2017-07-10 21:59
274 查看
在前几天开发中遇到一个问题,就是要求选中放大gridview的item。然后就开始重写gridview ,发现按照一般的做法会发现空指针异常的现象。以下是我一开始做的方法:
重写gridview,的绘制顺序,把选中的item和最后一个绘制的item调换一下顺序。
上面是放大动画,最基础的动画。
当item多的时候会报错,因为position一直增加,而childcount是可见的数目,当所有的item都是可见的时候将不会出错。所有要修改一下代码。修改为以上的代码就不出错了
以上的代码就是兼顾可见可不见的条目,这时候就适配左右的不管多或少的item报空指针异常问题。
以上是我遇见并解决的问题,欢迎大家交流。
@Override protected int getChildDrawingOrder(int childCount, int i) { if (position != -1) { if (i == childCount - 1) return position; if (i == position){ return childCount - 1; } } return i; }
重写gridview,的绘制顺序,把选中的item和最后一个绘制的item调换一下顺序。
public void setScaleAnimation(View view,int position) { AnimationSet animationSet = new AnimationSet(true); if (manimationSet != null && manimationSet != animationSet) { manimationSet.setFillAfter(false); manimationSet.cancel(); } ScaleAnimation scaleAnimation; if (position % 4 == 3){ scaleAnimation = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f, 1, 1f, 1, 0.5f); }else { scaleAnimation = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f, 1, 0.5f, 1, 0.5f); } scaleAnimation.setDuration(500); animationSet.addAnimation(scaleAnimation); animationSet.setFillAfter(true); view.startAnimation(animationSet); manimationSet = animationSet; }
上面是放大动画,最基础的动画。
当item多的时候会报错,因为position一直增加,而childcount是可见的数目,当所有的item都是可见的时候将不会出错。所有要修改一下代码。修改为以上的代码就不出错了
@Override protected int getChildDrawingOrder(int childCount, int i) { // return super.getChildDrawingOrder(childCount, i); if (this.getSelectedItemPosition() != -1) { if (i + this.getFirstVisiblePosition() == this.getSelectedItemPosition()) {// 这是原本要在最后一个刷新的item return childCount - 1; } if (i == childCount - 1) {// 这是最后一个需要刷新的item return this.getSelectedItemPosition() - this.getFirstVisiblePosition(); } } return i; }
以上的代码就是兼顾可见可不见的条目,这时候就适配左右的不管多或少的item报空指针异常问题。
以上是我遇见并解决的问题,欢迎大家交流。
相关文章推荐
- 关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案
- 关于RadioGroup某个item设置为check后,会一直选中的问题
- android GridView 在TV上解决item放大时候,被其他item遮挡,单纯使用bringToFront无法解决的问题
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题
- Android RecyclerView item选中放大被遮挡问题详解
- gridview的item放大问题,setOnItemSelectedListener不执行的解决办法。
- Android RecyclerView item选中放大被遮挡问题
- android 选中GridView 中 的item 时进行图片放大的操作
- android gridview的item放大问题,setOnItemSelectedListener不执行的解决办法。
- gridview的item放大问题,setOnItemSelectedListener不执行的解决办法。
- Android中关于GrideView,ListView的getView中position=0,错乱的问题。(在GridView的最后面添加两个固定item)
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题
- 关于UITabbarItem定制选中与未选中两张图片的问题
- Android RecyclerView item选中放大被遮挡问题
- 关于gridview的item内文字过长换行后显示不完全问题
- Gridview的Item嵌套CheckBox的另一种实现,避免了选中错乱等问题
- GridView 条目选中放大被遮挡问题
- 关于GridView中Item和其子控件获取焦点的问题
- android gridview的item放大问题,setOnItemSelectedListener不执行的解决办法。
- 关于FCKEditor编辑的区域选中问题