Android overScrollMode-首选项屏幕中无
我有一个偏好屏幕,我正试图摆脱过卷。我已经尝试了其他stackoverflow帖子中提到的许多不同的东西,但是无法禁用overScroll发光。以下是我尝试过的: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:
<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);
}
}