为了账号安全,请及时绑定邮箱和手机立即绑定

Android在清单上滑动

Android在清单上滑动

FFIVE 2019-12-10 13:08:47
有没有人有一个简单的ListActivity示例,该示例在列中显示Textviews,当您从左向右滑动时,会在新视图中看到该行?这就是说编辑该行的数据或显示该行的更多详细信息。请不要引用代码幕府将军或其他网站,因为我已经用Google搜索过,也没有看到这个答案。
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

这是一个非常简化的版本,它使用两个侦听器(onTouch用于滑动检测,onClickIem用于项目单击检测)使用isSwipe标志停止onClickItemListener,直到其确认不是滑动


在检测到点击

不是第一次刷卡的情况下


        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)

            {

                if(!isSwipe)

                {

                    adapter.increase(arg2);

                    adapter.notifyDataSetChanged();

                }

            }

        });

检测滑动


        listView.setOnTouchListener(new OnTouchListener() {

        private int action_down_x = 0;

            private int action_up_x = 0;

            private int difference = 0;

            @Override

            public boolean onTouch(View v, MotionEvent event) {


                switch (event.getAction()) {

                    case MotionEvent.ACTION_DOWN:

                        action_down_x = (int) event.getX();

                        isSwipe=false;  //until now

                        break;

                    case MotionEvent.ACTION_MOVE:

                        if(!isSwipe)

                        {

                            action_up_x = (int) event.getX();

                            difference = action_down_x - action_up_x;

                            if(Math.abs(difference)>50)

                            {

                                Log.d("action","action down x: "+action_down_x);

                                Log.d("action","action up x: "+action_up_x);

                                Log.d("action","difference: "+difference);

                                //swipe left or right

                                if(difference>0){

                                    //swipe left

                                    Log.d("action","swipe left");

                                    adapter.decrease(selectedItem);

                                    adapter.notifyDataSetChanged();

                                }

                                else{

                                    //swipe right

                                    Log.d("action","swipe right");

                                }

                                isSwipe=true;

                            }

                        }

                        break;

                    case MotionEvent.ACTION_UP:

                        Log.d("action", "ACTION_UP - ");

                        action_down_x = 0;

                        action_up_x = 0;

                        difference = 0;

                        break;

                }

                return false;   //to allow the clicklistener to work after

            }

        })



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 349 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信