【问题标题】:RecyclerView: Set scroll position so that item appears at the bottom of the viewRecyclerView:设置滚动位置,使项目出现在视图底部
【发布时间】:2016-05-24 13:21:05
【问题描述】:

我有一个RecyclerView 和一个LinearLayoutManager,它由一个带有不同高度项目的适配器支持。有没有办法告诉RecyclerView 设置滚动位置,使 X 项(或多或少)准确地出现在屏幕底部?

我尝试了LinearLayoutManager.scrollToPosition(),但这会将项目定位在视图的顶部。

【问题讨论】:

  • 没有 scrollToPosition() 工作?不确定屏幕底部。
  • scrollToPosition() 会将项目定位在视图的顶部。我想要相反的。
  • 希望您可以将此链接上的信息附加到它并解决问题。 stackoverflow.com/questions/24989218/…

标签: android android-recyclerview linearlayoutmanager


【解决方案1】:
MyAdapter mAdapter;
RecyclerView recyclerView;
List<ItemData> data = new ArrayList<>();
LinearLayoutManager llm = new LinearLayoutManager(this);

在 OnCreate 方法中试试这个

recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(llm);
llm.setStackFromEnd(true);
mAdapter = new MyAdapter(data, getApplication());
recyclerView.setAdapter(mAdapter);

当你插入一个项目时试试这个

mAdapter.notifyItemInserted(data.size() - 1);
llm.scrollToPosition(data.size() - 1);

【讨论】:

    【解决方案2】:

    在 mainActivity.class 中试试这个

     rv_journey.setAdapter(ca);
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        scrollList();
                    }
                }, 500);
    

    这是我的滚动方法

    private void scrollList(){
            rv_journey.post(new Runnable() {
                @Override
                public void run() {
                    // Call smooth scroll
                    rv_journey.smoothScrollToPosition(Index);
                }
            });
        }
    

    从扩展 RecyclerView.Adapter 的 Adapter 类中设置索引,您需要在哪里滚动...

    if (Condition) {
                            mainActivity.Index=position+1;
    
                        }
                    } 
    

    快乐编码...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-20
      • 2015-10-08
      • 1970-01-01
      • 2018-07-13
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多