如何在我的应用中禁用所有过度滚动效果?

37

我们的应用中,滚动时的蓝色阴影效果看起来真的很丑。有没有办法禁用所有滚动效果?你知道有很多ScrollView和列表...如果我必须在每个可滚动的小部件中都禁用它,那就太可惜了...谢谢~


你能否发布一个示例图像,展示你所指的滚动效果? - Phil
我从未遇到过这样的方法。并非所有设备都具有超滚动功能,而且并不是所有具有此功能的设备在执行此操作时看起来都一样。因此,至少你的应用程序并非对每个人都呈现出这种外观。 - FoamyGuy
5个回答

40

您可以简单地完成它

layout.XML

设置

android:overScrollMode="never"

在滚动视图中


36

您可以在主题中定义 ScrollViewStyleListViewStyle:

<style name="Theme.MyTheme" parent="android:Theme.Holo">
    <item name="android:listViewStyle">@style/Widget.MyTheme.ListView</item>
    <item name="android:scrollViewStyle">@style/Widget.MyTheme.ScrollView</item>
</style>

<style name="Widget.MyTheme.ListView" parent="android:Widget.ListView">
    <item name="android:overScrollMode">never</item>
</style>

<style name="Widget.MyTheme.ScrollView" parent="android:Widget.ScrollView">
    <item name="android:overScrollMode">never</item>
</style>
然后你需要在你的AndroidManifest.xml文件中定义你的主题:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="ch.citux.example"
      android:versionCode="1"
      android:versionName="1.0">

<uses-sdk android:targetSdkVersion="16" android:minSdkVersion="8"/>

<application
        android:hardwareAccelerated="true"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/Theme.MyTheme">

就这样,不再有过度滚动了 ;)


1
小提示:这个方法不能与NestedScrollViewViewPager一起使用。下面这个答案https://dev59.com/EGw05IYBdhLWcg3wkig-#17283061将在所有地方禁用overscroll。 - Ivan Morgillo

24

我遇到了同样的问题

尝试这段代码

listView.setOverScrollMode(View.OVER_SCROLL_NEVER);

14
您可以通过打开 "res/values/styles.xml" 文件并添加以下行项目来禁用所有过度滚动效果:
<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:overScrollMode">never</item>
</style>

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接