java - 仅当 RecyclerView 可滚动时,如何向 RecyclerView 中的最后一个 View 添加填充?

标签 java android android-recyclerview

我想向 RecyclerView 中的最后一个 View 添加底部填充,但如果 RecyclerView 可滚动 - 换句话说,如果最后一个适配器项目完全可见而无需滚动,不要添加填充。我意识到,在 onBindViewHolder 中,findLastCompletelyVisibleItemPosition() 将始终返回上一个项目的位置,因为当前 View 在技术上尚不可见。我还尝试了 ItemDecorator,但这也不起作用,因为它们是在 View 之前添加的,所以我们仍然不知道 RecyclerView 是否可滚动。我理想的方法看起来像这样:

@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
    ...
    if (position == items.size() - 1 && [is scrollable]) {
        ((MyViewHolder) viewHolder).addBottomPadding(...);
    }
}

我不确定这个[可滚动]。还有其他方法可以实现这一点吗?

最佳答案

android:clipToPadding 属性添加到您的 View 中,并为您的 View 提供填充,以便与 recylerview 项目一起滚动。

  <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:paddingBottom="16dp"
        android:paddingTop="16dp"
     />

希望这会有所帮助

关于java - 仅当 RecyclerView 可滚动时,如何向 RecyclerView 中的最后一个 View 添加填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52545322/

相关文章:

java - 保存文件变量以供以后使用?

Android keystore 初始化

android - 如何在android中使用ffmpeg从mp4视频中获取视频帧?

java - 我可以在处理程序/可运行对象中执行网络操作(UI 阻塞)吗?

android - 在android中没有对话框的进度条

android - 如何在RecyclerView中实现定时自动滚动和位置标记?

java - Netty 是否违反了 Future.cancel(...) 方法的约定?

java - kotlin项目无法在gradle中构建

java - 如何模拟在 G-Suite 域中运行的 AppEngine java 应用程序的用户?

java - 未输入 ViewHolder 中的 OnClickListener