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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)