我有一个偏好屏幕,并且我试图摆脱overScroll。我已经尝试了其他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>
下面是我的styles.xml
<style name="PreferenceScreenStyle" parent="@style/PreferenceThemeOverlay.v14.Material">
<item name="android:scrollViewStyle">@style/CustomScrollView</item>
<item name="android:listViewStyle">@style/CustomListView</item>
</style>
<style name="CustomScrollView" parent="android:Widget.ScrollView">
<item name="android:overScrollMode">never</item>
<item name="android:fadingEdge">none</item>
</style>
<style name="CustomListView" parent="android:Widget.ListView">
<item name="android:overScrollMode">never</item>
<item name="android:fadingEdge">none</item>
</style>
答案 0 :(得分:0)
只需将这两行添加到onCreate
上的SettingsActivity
方法中即可:
ListView list = findViewById(android.R.id.list);
list.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
答案 1 :(得分:0)
在片段"Fragment : PreferenceFragmentCompat()"
中,像这样添加"listView.overScrollMode = View.OVER_SCROLL_NEVER"
:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
listView.overScrollMode = View.OVER_SCROLL_NEVER
}
答案 2 :(得分:0)
这与这里的其他答案非常相似,但更完整一些,特别是对于那些仍在使用 PreferenceFragment
(而不是 AndroidX 的 PreferenceFragmentCompat
)的人。
您需要覆盖 onViewCreated
并使用 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);
}
}