相关疑难解决方法(0)

了解RecyclerView setHasFixedSize

我理解起来有些困难setHasFixedSize().我知道,当RecyclerView文档中的大小不变时,它用于优化.

这意味着什么?在大多数常见情况下,ListView几乎总是具有固定的大小.在什么情况下它不是固定的大小?这是否意味着它在屏幕上占据的实际房地产随着内容的增长而增长?

android android-5.0-lollipop android-recyclerview

120
推荐指数
5
解决办法
6万
查看次数

RecyclerView notifyDataSetChanged滚动到顶部位置

打电话时notifyDataSetChangedRecyclerView 其滚动位置和卷轴不保留顶部,有没有解决方案,保留它的滚动位置?

android android-appcompat android-recyclerview

17
推荐指数
3
解决办法
2万
查看次数

RecyclerView在聊天屏幕中的notifyDataSetChanged上滚动到顶部

我正在尝试使用recyclelerView创建消息类型的屏幕,它将从底部开始,并在用户到达聊天的最高端时加载更多数据.但我正面临着这个奇怪的问题.

我的recyclerView在调用notifyDataSetChanged时滚动到顶部.由于这个onLoadMore被多次调用.

这是我的代码:

LinearLayoutManager llm = new LinearLayoutManager(context);
llm.setOrientation(LinearLayoutManager.VERTICAL);
llm.setStackFromEnd(true);
recyclerView.setLayoutManager(llm);
Run Code Online (Sandbox Code Playgroud)

**在适配器中

 @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (messages.size() > 8 && position == 0 && null != mLoadMoreCallbacks) {
        mLoadMoreCallbacks.onLoadMore();
    }
Run Code Online (Sandbox Code Playgroud)

**在活动中

@Override
public void onLoadMore() {
    // Get data from database and add into arrayList
      chatMessagesAdapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

这只是recyclerView滚动到顶部.如果滚动到顶部停止,则此问题将得到解决.请帮我弄清楚这个问题的原因.提前致谢.

android notifydatasetchanged recycler-adapter android-recyclerview linearlayoutmanager

14
推荐指数
2
解决办法
8027
查看次数

如何停止刷新recyclerview数据每次滚动到顶部位置android

我正在尝试使用 recyclerview 制作类似于视频的布局。我制作了一个 recyclerview,它会在一定时间间隔后更新列表,但问题是数据更新后它会自动滚动到顶部位置。我想做一些像视频一样的东西。https://youtu.be/omcS-6LeKoo 我尝试过使用来自 SO RecyclerView 的链接,当更改适配器数据时 RecyclerView notificationDataSetChanged 滚动到顶部位置但无法解决。下面是我的尝试

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView = findViewById(R.id.recyclerViewId);

        handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
//                Toast.makeText(getApplicationContext(),"Updating",Toast.LENGTH_LONG).show();
                listShow();
                handler.postDelayed(this,1000);

            }
        },1000);

    }

void listShow(){

        retrofitApiCall = RetrofitInstance.getRetrofitInstance().create(RetrofitApiCall.class);
        Call<ModelClass_JSONParse> getDetails = retrofitApiCall;
        anime = ExtendedAnime.getAll();

        getDetails.enqueue(new Callback<ModelClass_JSONParse>() {
            @Override
            public void onResponse(Call<ModelClass_JSONParse> call, 
         Response<ModelClass_JSONParse> response) {
                Log.v("Res",response.toString());
                getWithValues = new HashMap<>();

                if (response.isSuccessful()){

                        list.add(mModelClass_adapter);
                    }
                    adapter = new Adapter(getApplicationContext(),list);
                    StaggeredGridLayoutManager …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

5
推荐指数
1
解决办法
9124
查看次数