在 ScrollView 中隐藏滚动条

Posted

技术标签:

【中文标题】在 ScrollView 中隐藏滚动条【英文标题】:Hide scrollbar in ScrollView 【发布时间】:2012-03-18 15:35:35 【问题描述】:

我有一个带有 ScrollView 的应用程序,我不希望滚动条出现在屏幕上。如何在确保滚动仍然有效的同时隐藏 ScrollView 中的滚动条?

【问题讨论】:

Remove scroll bar track from ScrollView in android的可能重复 【参考方案1】:

在 Java 中添加以下代码:

myScrollView.setVerticalScrollBarEnabled(false);
myScrollView.setHorizontalScrollBarEnabled(false);

在 XML 中为您的 ScrollView 添加以下属性:

android:scrollbars="none"

像这样:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:id="@+id/mainScroll"
android:scrollbars="none" <!-- line to be added -->
>

【讨论】:

你能告诉我如何处理 onScrollChanged 事件吗? 看到这个问题可能会有所帮助。 ***.com/questions/4263053/… 滚动功能不适用于此解决方案 android:scrollbarSize="0dp" 使用滚动条="none" 有时不允许用户滚动【参考方案2】:

这将隐藏滚动条棒,但滚动条不会被禁用

android:scrollbarThumbVertical="@null"

android:scrollbarThumbHorizontal="@null"

这将禁用滚动条

android:scrollbars="none"

【讨论】:

android:scrollbars="none" 不会禁用滚动条。您可以滚动但只是隐藏`滚动视图棒`【参考方案3】:

在 XML 集中 android:scrollbars="none"

【讨论】:

你能告诉我如何处理 onScrollChanged 事件吗? 滚动功能不适用于此解决方案 你知道为什么这会使视图无法滚动吗?【参考方案4】:

试试这个,它也有效...

android:scrollbarThumbVertical="@null"

android:scrollbarThumbHorizontal="@null"

【讨论】:

【参考方案5】:

根据我的经验,

android:scrollbarThumbVertical="@null"

可能在旧设备中导致 NullPointerException。改用这个:

android:scrollbarThumbVertical="@android:color/transparent"

干杯!

【讨论】:

【参考方案6】:

您必须尝试以下解决方案

    android:scrollbars="none"

    android:scrollbarThumbVertical="@null"
    android:scrollbarThumbHorizontal="@null"

或更改滚动条的颜色以隐藏它们

    android:scrollbarThumbVertical="@android:color/transparent"

【讨论】:

【参考方案7】:

在 XML 布局中,添加这个属性:

android:scrollbarSize="0dp"

【讨论】:

【参考方案8】:

要隐藏垂直滚动条,请在 XML 中执行此操作:

android:scrollbarThumbVertical="@null"

为了隐藏水平滚动条,这样做:

android:scrollbarThumbHorizontal="@null"

如果您想隐藏滚动条而不禁用它,上述代码行将起作用。

要禁用滚动条,请这样写:

android:scrollbars="none"

【讨论】:

【参考方案9】:

现在如果你设置android:scrollbars="none",滚动就不再起作用了

我已经解决了问题

  android:scrollbars="vertical" // or horizontal

并将其大小设置为 0 dp

  android:scrollbarSize="0dp"

【讨论】:

【参考方案10】:

如果您正在制作“自定义”Horizo​​ntalScrollView,那么您应该像这样在代码中设置这些属性

this.scrollBarSize = 0 this.isHorizontalScrollBarEnabled = false

这是我工作的唯一方法。

【讨论】:

【参考方案11】:

Kotlin 解决方案

如果您需要以编程方式执行此操作,您可以设置以下一项或两项:

scrollView.isHorizontalScrollBarEnabled = false
scrollView.isVerticalScrollBarEnabled = false

如果您要定期同时应用这两者,请尝试添加此扩展程序

fun ScrollView.noScrollbars() 
    isHorizontalScrollBarEnabled = false
    isVerticalScrollBarEnabled = false

为了方便切换,您可以添加一个可选的布尔值

fun ScrollView.noScrollbars(hide: Boolean = true) 
    isHorizontalScrollBarEnabled = !hide
    isVerticalScrollBarEnabled = !hide

【讨论】:

以上是关于在 ScrollView 中隐藏滚动条的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NativeScript 中隐藏 ScrollView 的滚动条?

Android 中ScrollView垂直滚动视图之隐藏滚动条的三种方法

ScrollView如何用代码设置滚动条

微信小程序 scroll-view滚动条隐藏

Android隐藏列表视图滚动条?

在 Android 的 FlatList (React Native) 中隐藏滚动条