Recyclerview 从底部开始

问题描述 投票:0回答:3

我正在将图片和字符串加载到 Recyclerview 中。我曾经发现 setStackfrombottom 正在工作。但现在不是了。我不知道为什么。这是我的代码:

MessageAdapter messageAdapter = new MessageAdapter(chatsList, Chat_Room.this);
LinearLayoutManager manager = new LinearLayoutManager(getApplicationContext());
manager.setStackFromEnd(true);
recyclerView.setLayoutManager(manager);
recyclerView.setItemViewCacheSize(30);
recyclerView.setDrawingCacheEnabled(true);
recyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(messageAdapter);

ChatsList 是一个 List,其中包含 Strings 的构造函数。 我还能尝试什么?

编辑

它不起作用,因为我使用了毕加索。当我将其更改为 Glide 后,它工作得更好、更流畅。设置适配器后,我这样做了:

recyclerView.scrollToPosition(messageAdapter.getItemCount()-1);

滚动到最后一个位置。 现在一切正常。

android android-layout android-recyclerview
3个回答
2
投票
manager.setReverseLayout=true

您可以使用以上属性。


1
投票

我正在从 Firebase 接收数据。所以它的顺序已经是正确的了。 设置适配器后,我滚动到最后一个位置:

recyclerView.scrollToPosition(messageAdapter.getItemCount()-1);

因此它现在滚动到最后一个位置。 (-1 是因为适配器从 0 开始计数)


0
投票

您可以在 XML 中使用

app:reverseLayout="true"

或者你可以在代码端使用(Kotlin)

val manager = LinearLayoutManager(context)
manager.reverseLayout = true
© www.soinside.com 2019 - 2024. All rights reserved.