代码之家  ›  专栏  ›  技术社区  ›  user2605090

Android-如何禁用SlidingTabLayout的滑动特性

  •  3
  • user2605090  · 技术社区  · 9 年前

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

    然而,我不希望用户能够滑动,因为第一个选项卡将包含一个谷歌地图,用户可以像任何普通地图一样四处移动和导航。

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

    此外,即使用户切换选项卡,我是否仍然可以保持第一个选项卡的加载状态?我不想每次都要加载/重新绘制谷歌地图。

    1 回复  |  直到 8 年前
        1
  •  2
  •   JLT Carson    9 年前

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

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

    希望有帮助。:)