标签: android-recyclerview

如何用RecyclerView完全替换listView/GridView?

我注意到新的RecyclerView类,虽然它使事情变得更清洁,但缺乏我熟悉的许多功能:

  1. 分隔符,但这可以通过查看这篇文章这篇文章来解决
  2. "footerDividersEnabled"
  3. "headerDividersEnabled"
  4. "listSelector",但也许我应该根据视图设置它?
  5. "fastScrollEnabled"
  6. "smoothScrollbar"
  7. "textFilterEnabled"
  8. 我还试图找出是否有一种新的方法来使用带有过滤的新类(通过实现Filterable与ListView一起使用).我不知道是否有这样的事情
  9. "tools:listitem",用于显示UI设计器上的项目.

这些是我使用的,但也许还有其他我错过了.

是否有任何教程或一些指导如何替换这些东西?

android android-listview android-gridview android-recyclerview

38
推荐指数
2
解决办法
1万
查看次数

如何在特定条件下隐藏Recycler View中的项目?

我正在使用Firebase Recycler Adapter(Firebase UI库)来填充Recycler View.我想在条件上隐藏项目(行).我有一个包含回收者视图的LinearLayout.

我在populateViewHolder()循环器视图适配器的方法中将线性布局可见性设置为Gone .

@Override
protected void populateViewHolder(UsersViewHolder viewHolder, User user, int position) {

    if (user.getUserEmail().equals(Utils.decodeEmail(userEmail))) {
        viewHolder.llMain.setVisibility(View.GONE);
        return;
    }

    viewHolder.tvUserEmail.setText(user.getUserEmail());
}
Run Code Online (Sandbox Code Playgroud)

它隐藏了LinearLayout,但行仍留有空白.

是否有任何方法我应该覆盖以克服这个或有什么方法来实现结果?

android firebase android-recyclerview firebase-realtime-database firebaseui

38
推荐指数
6
解决办法
4万
查看次数

如何点击Espresso中RecyclerView内的项目

我有一个RecyclerView(R.id.recyclerView),其中每一行都有一个图像(R.id.row_image)和一个TextView.我想点击第一行中的图片.
我试过使用onData(..)但似乎没有用.

android android-espresso android-recyclerview

37
推荐指数
4
解决办法
3万
查看次数

Recyclerview适配器和Glide - 每4-5行相同的图像

我有这个问题 - 只是为了测试目的,我添加ParseFileParseObject收到列表中的一个.它不是仅显示在该行中,而是显示每4-5行,有时更多,有时更少.我认为回收视图与此有关.奇怪的是,其他数据(从这个例子中删除)适用于position变量.

@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        if(parseList.get(position).get("logo") != null){
            ParseFile image = (ParseFile) parseList.get(position).get("logo");
            String url = image.getUrl();
            Glide.with(context)
                    .load(url)
                    .placeholder(R.drawable.piwo_48)
                    .transform(new CircleTransform(context))
                    .into(holder.imageView);


        }

    }
Run Code Online (Sandbox Code Playgroud)

android parse-platform recycler-adapter android-recyclerview android-glide

37
推荐指数
1
解决办法
4万
查看次数

android:recyclerview中的条目

我使用listview了以下条目属性:

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:entries="@array/fi"/>
Run Code Online (Sandbox Code Playgroud)

现在我正在将其转换为 RecyclerView

<android.support.v7.widget.RecyclerView
    android:id="@+id/rv"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

我想知道我们是否有android:entries属性RecyclerView?或者任何其他属性而不是条目?

android android-recyclerview android-databinding

37
推荐指数
3
解决办法
3783
查看次数

RecyclerView不滚动并显示所有项目

我在ScrollView中有一个RecyclerView(和一些其他视图).目前,RecyclerView的布局非常小(它显示了它包含的5个中的2个项目)并且它独立于ScrollView滚动,这显然不是很好的用户体验.我想让RecyclerView不滚动和扩展,以便所有项目都可见.

(我知道在这种情况下使用RecyclerView是愚蠢的.我只是这样做,因为应用程序中的其他地方我需要一个普通的RecyclerView滚动等但是同样的内容,我不想重复代码).

android android-recyclerview

37
推荐指数
5
解决办法
4万
查看次数

在Recyclerview中嵌入广告

我正在尝试将我的应用程序从listview升级到recyclerview.当我使用listview时,我使用本教程在listview中嵌入了广告.

我无法在recyclerview中添加它.有关如何在Recyclerview中完成此操作的任何观点?

目前在我的列表视图中,加载广告的代码如下:

    if ((position % k) == 0) {
      if (convertView instanceof AdView) {
        return convertView;
      } else {
        // Create a new AdView
        AdView adView = new AdView(activity, AdSize.BANNER,
                                   ADMOB_ID);

        float density = activity.getResources().getDisplayMetrics().density;
        int height = Math.round(AdSize.BANNER.getHeight() * density);
        AbsListView.LayoutParams params = new AbsListView.LayoutParams(
            AbsListView.LayoutParams.FILL_PARENT,
            height);
        adView.setLayoutParams(params);

        adView.loadAd(new AdRequest());
        return adView;
      }
    } else {
      return delegate.getView(position - (int) Math.ceil(position / k) - 1,
          convertView, parent);
    }
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

ListView项目

更新:从谷歌引用此视频,它给出了完整的解释

android listview android-appcompat admob android-recyclerview

36
推荐指数
3
解决办法
4万
查看次数

在RecyclerView的末尾添加空间

我有一个带有gridlayout的recyclerview.我想要的是当用户滚动到列表的末尾时(请参阅我的坏模型),应该有一个高度为50dp的空白空间,这与我的网格尺寸不同.

请注意,此空间仅在最末端可见,因为我不想更改布局.我可以这样做,以便recycerview的边距为50dp,但我不想这样做.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:scrollbars="vertical"
        />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-gridlayout android-recyclerview

36
推荐指数
3
解决办法
1万
查看次数

将项目分组到CardView的最佳做法是什么?

CardView通常用于装饰一个元素.但有时你需要将几个项目包装到这个小部件中.例如,在收件箱应用程序中.

在此输入图像描述

那么最好的方法是什么?它可以通过自定义LayoutManager甚至自定义ItemDecoration来实现.自定义LayoutManager的实现不是一件容易的事(完全支持动画,项目装饰等).在第二个选项中,必须手动实现边界的绘制,忽略CardView(和Android-L提升)实现.

android android-cardview android-recyclerview

36
推荐指数
1
解决办法
4313
查看次数

使用RecyclerView的TableLayout

只有两个布局管理器RecyclerView:LinearLayoutManagerGridLayoutManager.有没有办法TableLayout用作布局管理器RecyclerView?有什么建议吗?

编辑:我想知道是否有任何解决方案没有从零编写布局管理器.TableLayout行为对我来说已经足够了,只想为处理大量数据时的性能问题添加回收功能.

并且创建一个查看listview的表并不能解决我的问题,因为我的表非常动态,我甚至不知道列名,客户决定表的所有细节.因此,单元格是自定义的,列宽需要根据内容长度自动调整大小.我不认为listview可以处理这个问题.

在此先感谢您的帮助.

android android-recyclerview

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