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

标签 java android android-5.0-lollipop

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

但是,我不希望用户能够滑动,因为第一个选项卡将包含一个谷歌地图,用户可以像任何普通 map 一样在其中移动和导航。

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

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

最佳答案

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

如果您在布局中使用 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)随时禁用和启用滑动。

希望对您有所帮助。 :)

关于java - Android - 如何禁用 SlidingTabLayout 的滑动方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444538/

相关文章:

android - 安装没有成功。无法安装应用程序。由于 : 'Failed to install-write all apks' 安装失败

c# - 按钮上的文本在更改 IsEnabled 时失去中心对齐

android - Android 5.0 中的屏幕捕获和共享

java - 动态 JPanel 错误

java - Java 中的 stub 方法

android - IBM Worklight 插件连接未发生

android - 为什么在 Android 5 (Lollipop) 上可以直接从其他线程更改 UI View ?

java.lang.NoSuchMethodException : getTetherableIfaces on Lollipop 异常

java - 如何提高java中正则表达式的性能

Java 接口(interface) - 引用接口(interface)指向另一个接口(interface)的方法。该方法在哪里定义?