【问题标题】:using RecyclerView in Android 4.3 not fixed size在 Android 4.3 中使用 RecyclerView 不固定大小
【发布时间】:2014-11-18 00:01:02
【问题描述】:

我已经阅读了一些关于 RecyclerView 的 tuts 和信息页面,所以我决定这样做,随着我遵循这些 tuts 最终我做到了,但我有 1 个问题

  • 我在 xml 布局中有 RecyclerView,
  • 我为它编写了一个标准适配器(当然是带有 RecyclerView.ViewHolder 的那个),
  • 我有一个模型类:列表配置文件,其中至少有 1 个项目,
  • 我设置了LayoutManager(LinearLayoutManager),
  • 并添加了 DefaultAnimator....

这是xml中声明的RView:

<android.support.v7.widget.RecyclerView
        android:id="@+id/profiles_list"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="200dp"/>

如您所见,它有一个固定的高度。但我想实现没有固定高度,或者它可以有一个最大高度,但直到它达到那个大小,应该总是“wrap_content”。

可以从中添加和删除项目 --> 所以我认为 setHasFixedSize(false) 对这样的事情有好处,当它达到限制大小时,它可以在其中滚动,如果它小于给定高度,它会缩小其高度以在删除项目时包装内容,并且此视图下的布局元素会捕捉到它,当然还有动画。

这只是一个梦想吗(我的意思是这个功能已经编码并且开箱即用-->可以使用...)

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

    我不确定它是否正确,但这对我有帮助。因此,只需在每次添加或删除操作后调用

    DefaultItemAnimator mItemAnimator = new DefaultItemAnimator();
    mRecyclerView.postDelayed(new Runnable() {
    
         @Override
         public void run() {
             mRecyclerView.getRecycledViewPool().clear();
             mAdapter.notifyDataSetChanged();
         }
    
    }, mItemAnimator.getRemoveDuration() + mItemAnimator.getMoveDuration());
    

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 2012-03-17
      • 2010-11-25
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多