Android overScrollMode-首选项屏幕中无

Android overScrollMode-首选项屏幕中无,android,preferencescreen,Android,Preferencescreen,我有一个偏好屏幕,我正试图摆脱过卷。我已经尝试了其他stackoverflow帖子中提到的许多不同的东西,但是无法禁用overScroll发光。以下是我尝试过的: <androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:

我有一个偏好屏幕,我正试图摆脱过卷。我已经尝试了其他stackoverflow帖子中提到的许多不同的东西,但是无法禁用overScroll发光。以下是我尝试过的:

<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:overScrollMode="never"
    android:fadingEdge="none"
    style="@style/PreferenceScreenStyle">

    <androidx.preference.PreferenceCategory android:title="@string/control_file_settings"
    app:iconSpaceReserved="false">

        <androidx.preference.SwitchPreference
            android:key="key"
            android:title="title"
            android:defaultValue="false"
            app:iconSpaceReserved="false"/>
        .
        . 
        .
    </androidx.preference.PreferenceCategory>
    .
    .
    .
</androidx.preference.PreferenceScreen>


只需将这两行添加到
设置活动的
onCreate
方法中即可:

ListView list = findViewById(android.R.id.list);
list.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
在片段
“fragment:PreferenceFragmentCompat()”
,添加
“listView.overScrollMode=View.OVER\u SCROLL\u NEVER”
如下:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        listView.overScrollMode = View.OVER_SCROLL_NEVER
}

这与这里的其他答案非常相似,但更加完整,特别是对于那些仍然使用
首选片段
(而不是AndroidX的
首选片段compat
)的人

您需要重写创建的视图上的
onviewCreate
,并使用
View.findViewById()
获取
ListView
对象:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    // Remove over-scroll effect
    ListView list = view.findViewById(android.R.id.list);
    if (list != null) {
        list.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
    }
}

你能解释一下你的答案吗?我有一个片段,但没有具有该Id的视图。尽管如此,我将代码放在onCreateView中,但findViewById返回null。我在问题中附上了一个屏幕截图,描述了我的问题:
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    // Remove over-scroll effect
    ListView list = view.findViewById(android.R.id.list);
    if (list != null) {
        list.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
    }
}