2

我正在尝试使用RecyclerView创建一个聊天应用程序,用于以chatBubble 形式显示消息列表。

在 recyclerView 中,在每一行布局中我有两个文本视图。一个用于显示消息,另一个用于显示时间戳。对于短消息,它有效。但是,对于长消息,聊天气泡变得太大,并且在这种情况下无法看到用于显示时间戳的相应 TextView。

  1. 为什么会发生这种情况以及如何纠正这种情况,
  2. 另外,RecyclerView 中每个项目之间的空间需要增加,我尝试使用android:dividerHeight="12dp"但它没有工作。
4

1 回答 1

1

正如@Mohammed Atif 评论的那样,而不是使用

android:layout_toRightOf="@+id/message

用这个

android:layout_alignParentRight="true"

现在,要在 recyclerview 的项目之间添加空间,您需要添加 itemDecorator

public class VerticalSpaceItemDecoration extends RecyclerView.ItemDecoration {

private final int mVerticalSpaceHeight;

public VerticalSpaceItemDecoration(int mVerticalSpaceHeight) {
    this.mVerticalSpaceHeight = mVerticalSpaceHeight;
}

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
                           RecyclerView.State state) {
    if (parent.getChildAdapterPosition(view) != parent.getAdapter().getItemCount() - 1) {
        outRect.bottom = mVerticalSpaceHeight;
    }
}

}

然后像这样将这个项目装饰器添加到recyclerview

recyclerview.addItemDecoration(new VerticalSpaceItemDecoration(2));

这里,2是 recyclerview 列表项之间的空间。

于 2017-01-17T17:36:30.753 回答