10

次のように定義された 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);プログラムで使用すると、正常に動作します。私が見逃している問題は何ですか?どんなアイデアでも大歓迎です。

4

2 に答える 2

2

Androidが認識しないようですapp:stackFromEnd="true"。たぶん、あなたはそれを間違った場所に置きました。setStackFromEnd(Boolean)同じ仕事をしますが、プログラム的に行います。

ドキュメントによると:

public void setStackFromEnd(boolean stackFromEnd)

の互換性サポートsetStackFromBottom(boolean)

public void setStackFromBottom (boolean stackFromBottom)

API レベル 1 で追加されました stack from bottom が true に設定されている場合、リストはビューの下部からコンテンツを埋めます。

stackFromBottom trueビューのコンテンツを下端に固定するパラメーター、ビューのコンテンツをfalse上端に固定するパラメーター

これらを読んでください:

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

http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(ブール値)

于 2015-12-15T18:20:59.157 に答える