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

Android - How To Disable The Sliding Aspect of SlidingTabLayout

看到操作栏的选项卡布局现在如何被弃用,我需要使用滑动选项卡布局。

但是,我不希望用户能够滑动,因为第一个选项卡将包含一个 google 地图,用户可以像任何法线地图一样四处移动和导航。

所以我想限制用户只能点击每个选项卡,而不是滑动来切换屏幕。

此外,即使用户切换标签页,我是否仍然可以保持第一个标签页加载?我不想每次都load/redraw google 地图。

我将回答您有关在选项卡布局中禁用滑动事件的问题。

如果您在布局中使用 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).

随时禁用和启用滑动。

希望对您有所帮助。 :)