app:stackFromEnd RecyclerView 在 xml 中不工作?

app:stackFromEnd for RecyclerView is not working in xml?

我有一个 RecyclerView 定义为:

    <android.support.v7.widget.RecyclerView
      android:id="@+id/message_list"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_above="@id/message_input"
      android:layout_alignParentTop="true"
      app:stackFromEnd="true" />

相关代码也是常用的一个:

    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    //layoutManager.setStackFromEnd(true);
    mRecyclerView.setLayoutManager(layoutManager);

然而,当我添加一个项目 RecyclerView 时,它不遵守 app:stackFromEnd="true"。另一方面,如果我取消注释并以编程方式使用 layoutManager.setStackFromEnd(true);,它工作正常。我缺少什么问题?欢迎任何想法。

好像Android不认识app:stackFromEnd="true"。也许你把它放错了地方。 setStackFromEnd(Boolean) 以编程方式完成相同的工作。

根据文档:

public void setStackFromEnd(boolean stackFromEnd)

Compatibility support for setStackFromBottom(boolean)

public void setStackFromBottom (boolean stackFromBottom)

Added in API level 1 When stack from bottom is set to true, the list fills its content starting from the bottom of the view.

Parameters stackFromBottom true to pin the view's content to the bottom edge, false to pin the view's content to the top edge

阅读这些:

http://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#getStackFromEnd()

http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)

我运行进入类似的东西。问题是,当 RecyclerView 膨胀时,它会读取属性。

但是您要分配一个在 java 代码中创建的新 LinearLayoutManager。这个新管理器没有将 stackFromEnd 属性设置为 true(默认为 false)。

stackFromEnd 是管理器的属性,而不是 RecyclerView

就我而言,我有这个:

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/list"
    app:stackFromEnd = "true"
    app:layoutManager="LinearLayoutManager"
</android.support.v7.widget.RecyclerView>

在您的 xml 代码中,您没有 app:layoutManager 属性,所以我不确定在 inflation.

上为您创建了哪个管理器