gpt4 book ai didi

android-listview - Android View 中的默认 overScrollMode 值

转载 作者:行者123 更新时间:2023-12-01 09:15:46 25 4
gpt4 key购买 nike

根据 Android documentation , overScrollMode 的默认值为 OVER_SCROLL_ALWAYS。

但我的 ListView 似乎并没有遵循这种行为。只有当列表中有足够的内容可以滚动时,它才会显示过度滚动行为。

我试图查看 Android 代码,发现 overScrollMode 在 View.java 中设置为 OVER_SCROLL_IF_CONTENT_SCROLLS ref

我还检查了 ListView 和 AbsListView 的代码以检查是否在任何地方设置了 overscrollmode,但我找不到任何东西。唯一设置 overScrollMode 的地方是在 View.java 中。

这是否意味着 Android 文档不正确?我是否必须在我的 ListView 中将 overScrollMode 显式设置为“始终”?

最佳答案

是的,Android 文档实际上是不正确的。我确认了。正如您在以下 Android 源代码中所见,默认情况下,过度滚动设置为 if_content_scrolls

/**
* Simple constructor to use when creating a view from code.
*
* @param context The Context the view is running in, through which it can
* access the current theme, resources, etc.
*/
public View(Context context) {
mContext = context;
mResources = context != null ? context.getResources() : null;
mViewFlags = SOUND_EFFECTS_ENABLED | HAPTIC_FEEDBACK_ENABLED;
// Set some flags defaults
mPrivateFlags2 =
(LAYOUT_DIRECTION_DEFAULT << PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT) |
(TEXT_DIRECTION_DEFAULT << PFLAG2_TEXT_DIRECTION_MASK_SHIFT) |
(PFLAG2_TEXT_DIRECTION_RESOLVED_DEFAULT) |
(TEXT_ALIGNMENT_DEFAULT << PFLAG2_TEXT_ALIGNMENT_MASK_SHIFT) |
(PFLAG2_TEXT_ALIGNMENT_RESOLVED_DEFAULT) |
(IMPORTANT_FOR_ACCESSIBILITY_DEFAULT << PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_SHIFT);
mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
setOverScrollMode(OVER_SCROLL_IF_CONTENT_SCROLLS);
mUserPaddingStart = UNDEFINED_PADDING;
mUserPaddingEnd = UNDEFINED_PADDING;

if (!sCompatibilityDone && context != null) {
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;

// Older apps may need this compatibility hack for measurement.
sUseBrokenMakeMeasureSpec = targetSdkVersion <= JELLY_BEAN_MR1;

// Older apps expect onMeasure() to always be called on a layout pass, regardless
// of whether a layout was requested on that View.
sIgnoreMeasureCache = targetSdkVersion < KITKAT;

sCompatibilityDone = true;
}
}

关于android-listview - Android View 中的默认 overScrollMode 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com