PagerAdapter中的Android imageView具有奇怪的坐标

时间:2018-06-01 10:07:35

标签: android android-layout android-viewpager android-view

所以我使用自定义PagerAdapter来表示带有4个图像的网格4x4。该PagerAdapter设置为自定义ViewPager(关闭交换)。现在的问题是,当我尝试在ImageView上调用getLocationOnScreen()方法时,我得到一些奇怪的坐标(x = 1146,y = 457),这似乎不是好坐标(x坐标比实际更宽)屏幕?)。这是代码:

public Object instantiateItem(@NonNull ViewGroup container, int position) {
    layoutInflater = LayoutInflater.from(mContext);

    Object object = mObjectList.get(position);

    View view =  layoutInflater.inflate(R.layout.layout_card, container, false);

    TextView tvTextView = view.findViewById(R.id.tvTextView);

    ivImage1 = view.findViewById(R.id.ivSelectedImage1);


    ivImage1.setOnTouchListener(new View.OnTouchListener() {

        private GestureDetector gestureDetector = new GestureDetector(mContext, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onDoubleTap(MotionEvent e) {
                //Toast.makeText(mContext, "DOUBLE CLICK", Toast.LENGTH_SHORT).show();

                ivImage1.getLocationOnScreen(ivLocation);
                listener.performLikeAnimation(ivLocation, ivImage1.getWidth(), ivImage1.getHeight());


                return super.onDoubleTap(e);
            }
        });


        @Override
        public boolean onTouch(View v, MotionEvent event) {
            gestureDetector.onTouchEvent(event);
            return true;
        }
    });

        container.addView(view);
        return view;
    }
你能告诉我我做错了什么吗?我使用带有网格布局的RecyclerView进行了类似的实现,当我双击特定图像时,我能够获得良好的坐标。但是我不得不交换这个实现,因为我不能像ViewPager那样滚动它。主要目标是实现类似Tinder刷卡的功能,但只需单击水平按钮并单击按钮左侧功能。提前谢谢。

0 个答案:

没有答案