私はlistViewからRecyclerViewにチャットレイアウトを変換しました。メッセンジャーアプリケーションのRecyclerView
新しいメッセージが到着して自動的に表示されない場合、手動でそのメッセージにスクロールする必要があります。
それ以前のListViewでは動作しています。
私はrecylerViewでsetStackFormEndを使用しました。
は私がのWhatsAppのような機能は、新しいメッセージが到着すると、あなたが最後のメッセージを表示することができれば
のように、それはあなたがメッセージをスクロールした場合、メッセージが、
が、それは変更されないことが表示されます持っていたいですポジション。
layoutManager.setStackFromEnd(true);
messagesView.setLayoutManager(layoutManager);
messagesView.setItemAnimator(new DefaultItemAnimator());
messagesView.addOnScrollListener(mOnScrollListener);
コードコード
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
final Button addButton = (Button) findViewById(R.id.button_is_reverse);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setStackFromEnd(true);
layoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.addItemDecoration(new DividerDecoration(this));
adapter = new SampleAdapter(items);
recyclerView.setAdapter(adapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
items.add("Items" +items.size());
adapter.notifyItemInserted(items.size());
}
});
手動でスクロールする必要はありません。実際にはいくつかの規定setReverseLayoutがありますが、それでも私のために働いていません。 – Jarvis
'layoutManager.setReverseLayout(true);'?これも機能していませんか? – jitinsharma