【问题标题】:Configure RecyclerView to work as a chat将 RecyclerView 配置为聊天
【发布时间】:2015-06-04 04:27:14
【问题描述】:

要在列表视图中启用聊天式滚动,我们可以使用以下属性:

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ....
    android:stackFromBottom="true"
    android:transcriptMode="normal" />

这是一种创建聊天的简单而有效的方式。 我们如何用回收者视图做同样的事情?我没有找到任何简单的解决方案。

问候,

【问题讨论】:

标签: android listview android-listview android-recyclerview


【解决方案1】:

RecyclerView 有一个stackFromEnd 属性。

<android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/recyclerView" 
        android.support.v7.recyclerview:stackFromEnd ="true"/>

或者你可以通过代码来实现

mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setReverseLayout(true);
mLayoutManager.setStackFromEnd(true);

【讨论】:

  • 是的。谢谢。它奏效了。这相当于 stackFromBottom。但是哪个属性具有与 android:transcriptMode 类似的效果?它保证列表视图只有在用户查看数据集的最后一个元素时才会向下滚动。
  • 我觉得类似transcriptMode的效果可以通过代码使用setReverseLayout()来实现。查看我的编辑。
  • 好的。谢谢你。我会测试它,如果它有效,我会在这里发布。
  • 只添加了StackFromEnd 就可以了。如果您反转布局,则需要反转您的查询和所有内容
  • 非常感谢。一直不知道“setStackFromEnd”。
【解决方案2】:

添加这些语句;

<android.support.v7.widget.RecyclerView
                    android:id="@+id/chat_list_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:drawSelectorOnTop="false"
                    android:listSelector="@android:color/transparent"
                    android:paddingLeft="4dp"
                    android:paddingRight="4dp"
                    android:scrollbarStyle="outsideOverlay"
                    android:transcriptMode="normal" />

并添加到布局管理器中

layoutManager.setStackFromEnd(true);

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多