使用RecyclerView进行Android聊天

时间:2017-01-17 17:07:55

标签: android android-recyclerview recycler-adapter recyclerview-layout

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

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

  1. 为什么会发生这种情况以及如何解决这个问题,
  2. 此外,RecyclerView中每个项目之间的空间需要增加,我尝试使用android:dividerHeight="12dp",但它不起作用。

1 个答案:

答案 0 :(得分:1)

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

  

机器人:layout_toRightOf =" @ + ID /消息

使用此

  

机器人:layout_alignParentRight ="真"

现在,要在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;
    }
}

}

然后将此项装饰器添加到recyclelerview,就像这样

recyclerview.addItemDecoration(new VerticalSpaceItemDecoration(2));

此处, 2 是recyclerview列表项之间的空格。