android - ViewFlipper 中的 listView - 滚动问题

标签 android listview android-intent scroll viewflipper

我在使用 viewFlipper 中的 litView 时遇到一些问题。

    // GestureDetector
class MyGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        try {
            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                return false;
            // Right to left swipe
            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                IconManager.INSTANCE.leftSwipe();
                vf.setInAnimation(slideLeftIn);
                vf.setOutAnimation(slideLeftOut);
                vf.showNext();
                System.out.println("SWIIINGG!!");
                // Left to right swipe
            }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                IconManager.INSTANCE.rightSwipe();
                vf.setInAnimation(slideRightIn);
                vf.setOutAnimation(slideRightOut);
                vf.showPrevious();
            }
        } catch (Exception e) {
            // nothing
        }
        return false;
    }
    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {
        Log.e("Item Click","Item Click");

        Intent intentAgenda = new Intent (Activity_Main.this, AgendaSelected.class);
        //intentAgenda.putExtra("LECTURE_NAME", homeAgendaListAdapter.getItemId(3));
        startActivity(intentAgenda);
        return super.onSingleTapConfirmed(e);
    }
}

此代码使我能够在鳍状肢中的 View 之间翻转,并在不同翻转中的列表中滚动。但是,这使我的整个应用 可点击。即使我在空白表面上 singleTap,它也会记录一次点击,并将我发送到 Intent intentAgenda = new Intent 想要发送给我的位置。只有当我点击 listView 中的项目时才会发生这种情况!

我该怎么做才能让特定列表上的监听器只收听“列表上的”而不是整个应用程序?我认为问题出在 public boolean onSingleTapConfirmed 中,但我看不到它。

最佳答案

我没有尝试过上述方法,但一个实际有效的解决方案是创建一个新的 OnItemClickListener,然后在您的列表上设置 OnItemClickListener(您的项目点击监听器)。 那就是在你的情况下不使用单击,而是像这样创建一个新的 itemclick 监听器,但更时尚:

    list.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Intent intentAgenda = new Intent (Activity_Main.this, AgendaSelected.class);
            //      //          intentAgenda.putExtra("LECTURE_NAME", homeAgendaListAdapter.getItemId(3));
            startActivity(intentAgenda);
        }
    });

如果您想创建更多列表,您可以创建一个新的项目点击监听器,并将每个列表指向它。

关于android - ViewFlipper 中的 listView - 滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040547/

相关文章:

android - 如何使用联系人的 lookup_key 删除联系人

java - ViewPager 中的 Recyclerviews

java - Android 错误锁定模式监听器

java - 通过 Intent 从 Android 应用程序以编程方式在 Facebook 中共享图像

android - 为什么我无法在 android studio 3.1.0 中构建?

android - 在 RecyclerView 中使用 Urls 显示包含图像的 ParseFile

android - android 中的 xml 到 json

android - 长按列表项打开弹出菜单

wpf - 使用列表框拖动选择

android - 通过 Intent 的日历事件未设置开始和结束时间