【发布时间】:2019-06-24 06:52:16
【问题描述】:
这是下边距:
@Override
protected void directionDownScrolling(View recyclerView) {
MarginLayoutParams params = (MarginLayoutParams) recyclerView.getLayoutParams();
params.setMargins(0, 0, 0,
(int) recyclerView.getContext().getResources().getDimension(R.dimen.dimen_recycler_view_spacing));
mHandler.postDelayed(() -> recyclerView.setLayoutParams(params), 250);
}
和顶部填充:
@Override
protected void directionDownScrolling(View recyclerView) {
// Calculate ActionBar height
TypedValue tv = new TypedValue();
int actionBarHeight = recyclerView.getContext().getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true) ?
TypedValue.complexToDimensionPixelSize(tv.data, recyclerView.getContext().getResources().getDisplayMetrics()) :
(int) recyclerView.getContext().getResources().getDimension(R.dimen.dimen_recycler_view_spacing);
recyclerView.setPadding(0, actionBarHeight, 0, 0);
}
如您所见,顶部填充不会延迟,但我预计底部边距会在 250 毫秒后出现,
但一旦应用了顶部填充,底部边距也会出现。为什么以及如何解决?
【问题讨论】:
-
250ms 是一个非常短的时间来区分我认为。您是否在这里尝试了更长的时间并检查是否发生了同样的事情?
-
是的,只要应用填充,底部边距也会出现。如果我为填充设置了 250 毫秒的延迟,那么它将按预期工作,但为什么呢?什么关系?
-
我还是一头雾水。您是否延迟了 10 秒并检查是否有效?我认为 10 秒将是 10000 毫秒。请尝试使用它而不是 250 并在此处报告。
-
即使我设置了 10 秒,它也会立即出现。您可以克隆项目并尝试:github.com/Ali-Rezaei/Contacts/tree/quick_hide_behaviour
标签: android android-coordinatorlayout