android – 在旋转屏幕后,Recyclerview不会调整大小

前端之家收集整理的这篇文章主要介绍了android – 在旋转屏幕后,Recyclerview不会调整大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个Recyclerview填充了用户插入的项目.我正在实现旋转的功能,因为当我转动设备时,recyclerview显示为空.

调试应用程序,我已经检查旋转之前和之前的完整性,并且ArrayList具有相同的大小.我认为问题是Recyclerview的setNestedScrollingEnabled(false),我设置了这个,因为我不想在rv中显示滚动.

问题是:我处于纵向模式,我添加了3个项目,它在recyclerview中显示我很完美.检查图像:

Portrait

当我将屏幕旋转到横向时,recyclerview的arraylist有3个项目,但高度不会改变,所以它只有一个项目.

enter image description here

那么,我如何解决这个问题?

Recyclerview:

itemsRv = (RecyclerView) findViewById(R.id.itemsRv);
itemsRv.setNestedScrollingEnabled(false);
itemAutoCompleteAdapter = new ItemAutoCompleteAdapter(this);
if(items ==null){
   items = new ArrayList<>();
}
itemsAdapter = new ItemsRowAdapter(this,items,new ItemsRowAdapter.itemsRowListener() {
  @Override
  public void editarItemOnClick(View v,int position) {
  editar_item(items.get(position),position);
  }

  @Override
  public void eliminarItemOnClick(View v,final int position) {

  }
});
itemsRv.setHasFixedSize(true);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
itemsRv.setLayoutManager(mLayoutManager);
itemsRv.setAdapter(itemsAdapter);

布局:

  

我试图将android:layout_height更改为wrap_content和match_parent但没有成功.

非常感谢你!

最佳答案
我找到了解决方案.

我将Recyclerview放在RelativeLayout中,如下所示:

在代码中,我添加了这个

itemsRv.setHasFixedSize(true);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);

itemsRv.setLayoutManager(mLayoutManager);
RelativeLayout.LayoutParams lp =
                new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.WRAP_CONTENT); //<--- ADD
itemsRv.setLayoutParams(lp);//<--- ADD
itemsRv.setAdapter(itemsAdapter);

它完美无缺,我从https://stackoverflow.com/a/34543165/3200714开始就有了这个想法

原文链接:https://www.f2er.com/android/430100.html

猜你在找的Android相关文章