Android - 将视图中心与 RecyclerView 中最后一个孩子的中心对齐

Posted

技术标签:

【中文标题】Android - 将视图中心与 RecyclerView 中最后一个孩子的中心对齐【英文标题】:Android - Align view center with center of last child in RecyclerView 【发布时间】:2021-08-08 20:47:25 【问题描述】:

我的问题和这个类似:

android - Align view center to bottom of other view

但 id 在一个重要的细节上有所不同。我不想将视图以RecyclerView 的结尾为中心,而是以 最后一个子视图 为中心。所以我不能只使用:

app:layout_constraintStart_toEndOf="@+id/recycler_view"
app:layout_constraintEnd_toEndOf="@+id/recycler_view"

这种情况有解决办法吗?

【问题讨论】:

可能您必须使用具有不同 itemTypes 的 recyclerview,检查此链接,可能会有所帮助***.com/a/26245463/2931124 您确实说的是ConstraintLayout,所以问题是RecyclerView 还是水平或垂直方向。? @Cheticamp 水平方向 所以 RecyclerView 项目左右滑动。当顶部/右侧项目移动时,自定义视图会发生什么?它是随它移动还是留下来? (我假设它会留下来。) 如果你对项目的宽度与 RecyclerView 的宽度之间的关系有一定的了解,例如“RecyclerView 的宽度总是每个项目宽度的四倍”,那么你可以可能在 XML 中做一些事情。如果没有,那么您将需要进行一些编码以放置指南或类似的东西。 【参考方案1】:

只需将您想要的最后一个视图放在 recycle_list_item.xml 的中心,因为在这里您可以将 lastView 垂直居中对齐。 然后在 onBindViewHolder() 中做一些逻辑

 @Override
    public void onBindViewHolder(@NonNull BusStopViewHolder holder, int position) 
       
        if(position==viewList.size()-1)
            
         
            holder.lastView.setVisibility(View.Visible);

        
       else  holder.lastView.setVisibility(View.Gone);

【讨论】:

以上是关于Android - 将视图中心与 RecyclerView 中最后一个孩子的中心对齐的主要内容,如果未能解决你的问题,请参考以下文章

使用 android studio java Recycler 视图从 Firebase 实时数据库中删除一个节点

Android - 为啥 Recycler 视图未显示在设备上? .我认为我的代码是正确的,但视图没有显示

无法从firebase数据库android,recycler视图中检索数据

在Recycler视图上添加图像视图时,Android导航抽屉动画滞后/减速

Recycler视图在android studio中未显示一张卡片视图

Recycler View Android中的Firestore数据[重复]