Android - 如何禁用SlidingTabLayout的滑动方面

时间:2015-09-07 18:51:10

标签: java android android-5.0-lollipop

看到操作栏的标签布局现在已弃用,我需要使用滑动标签布局。

但是,我不希望用户能够刷卡,因为第一个标签将包含用户可以移动的谷歌地图,并像任何普通地图一样浏览。

因此,我希望将用户限制为仅点击每个标签而不是滑动来更改屏幕。

另外,无论如何,即使用户切换标签,我仍然可以加载第一个标签吗?我不想每次都要加载/重绘Google地图。

1 个答案:

答案 0 :(得分:2)

我将回答有关在标签布局中禁用滑动事件的问题。

如果您在布局中使用ViewPager,则可以创建一个自定义ViewPager,扩展ViewPager并设置禁用和启用滑动的方法。

以下是一个示例:

public class CustomViewPager extends ViewPager 
{
    private boolean enabled;

    public CustomViewPager(Context context, AttributeSet attrs) 
    {
        super(context, attrs);
        this.enabled = true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) 
    {
        if (this.enabled) 
        {
            return super.onTouchEvent(event);
        }

        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) 
    {
        if (this.enabled) 
        {
            return super.onInterceptTouchEvent(event);
        }

        return false;
    }

    public void setPagingEnabled(boolean enabled) 
    {
        this.enabled = enabled;
    }
}

从上面的代码中可以看出,您可以通过调用setPagingEnabled(boolean enabled)方法随时禁用和启用滑动。

希望它有所帮助。 :)