woaixuexi1209 2015-05-26 05:22 采纳率: 0%
浏览 1506

fragment的滑动删除 反应很顿

我在listview的getview里面写了滑动删除,可是反应很顿,老是滑不出来,
体验效果不好,网上看到的都是在activity中用的,我试了,当切换fragment的时候,还是存在的
大家有好的方法吗?/??谢谢了

// 为每一个view项设置触控监听
convertView.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                final ListViewHolder holder = (ListViewHolder) v.getTag();
                // 当按下时处理
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    // //设置背景为选中状态
                    // v.setBackgroundResource(R.drawable.mm_listitem_pressed);
                    // 获取按下时的x轴坐标
                    x = event.getX();
                    // Toast.makeText(mContext, x+"", 1).show();
                    // 判断之前是否出现了删除按钮如果存在就隐藏
                    if (curDel_btn != null) {
                        // if(curDel_btn.getVisibility() == View.VISIBLE){
                        curDel_btn.setVisibility(View.GONE);
                        return true;
                        // }
                    }

                } else if (event.getAction() == MotionEvent.ACTION_UP) {// 松开处理
                    // 设置背景为未选中正常状态
                    // v.setBackgroundResource(R.drawable.mm_listitem_simple);
                    // 获取松开时的x坐标
                    ux = event.getX();
                    // 怎么没用松开的坐标呢
                    // 判断当前项中按钮控件不为空时
                    if (holder.del != null) {

                        // 按下和松开绝对值差当大于20时显示删除按钮,否则不显示

                        if (Math.abs(x - ux) > 20) {
                            holder.del.setVisibility(View.VISIBLE);
                            curDel_btn = holder.del;
                            return true;
                        }
                    }
                } else if (event.getAction() == MotionEvent.ACTION_MOVE) {// 当滑动时背景为选中状态
                    return true;
                    // v.setBackgroundResource(R.drawable.mm_listitem_pressed);

                } else {// 其他模式
                    // 设置背景为未选中正常状态
                    // v.setBackgroundResource(R.drawable.mm_listitem_simple);

                }

                return true;
            }

        });
  • 写回答

2条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-05-26 05:26
    关注

    你可以考虑用nineoldandroids-2.4.0.jar或者网上有人实现了,你看看他们代码如何写的,比如
    http://blog.csdn.net/xiaanming/article/details/17539199

    评论

报告相同问题?

悬赏问题

  • ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题