首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HackyViewPager in Xamarin.Android

HackyViewPager in Xamarin.Android
EN

Stack Overflow用户
提问于 2015-03-09 13:25:17
回答 1查看 311关注 0票数 0

我正在尝试将这个HackyViewPager for PhotoView转换为Xamarin.Android版本,但我现在无法思考如何实现。

下面是扩展HackyViewPager的ViewPager类

代码语言:javascript
复制
public class HackyViewPager extends ViewPager {

    private boolean isLocked;

    public HackyViewPager(Context context) {
        super(context);
        isLocked = false;
    }

    public HackyViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        isLocked = false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (!isLocked) {
            try {
                return super.onInterceptTouchEvent(ev);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
                return false;
            }
        }
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (!isLocked) {
            return super.onTouchEvent(event);
        }
        return false;
    }

    public void toggleLock() {
        isLocked = !isLocked;
    }

    public void setLocked(boolean isLocked) {
        this.isLocked = isLocked;
    }

    public boolean isLocked() {
        return isLocked;
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 14:26:09

一个简单的解决方案是将java转换为C#,如下所示

代码语言:javascript
复制
using System;
using Android.Support.V4.View;
using Android.Content;
using Java.Lang;
using Android.Views;
using Android.Util;

public class HackyViewPager : ViewPager
{

    private bool IsLocked { get; set; }

    public HackyViewPager (Context context)
        : base (context)
    {
        IsLocked = false;
    }

    public HackyViewPager (Context context, IAttributeSet attrs)
        : base (context, attrs)
    {
        IsLocked = false;
    }

    public override bool OnInterceptTouchEvent (MotionEvent ev)
    {
        if (!IsLocked) {
            try {
                return base.OnInterceptTouchEvent (ev);
            } catch (IllegalArgumentException e) {
                return false;
            }
        }
        return false;
    }

    public override bool OnTouchEvent (MotionEvent ev)
    {
        if (!IsLocked) {
            return base.OnTouchEvent (ev);
        }
        return false;
    }

    public void ToggleLock ()
    {
        IsLocked = !IsLocked;
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28943128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档