相关疑难解决方法(0)

如何在RecyclerView中的项目之间添加分隔符和空格?

这是一个如何ListView使用dividerdividerHeight参数在类中执行的示例:

<ListView
    android:id="@+id/activity_home_list_view"
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:divider="@android:color/transparent"
    android:dividerHeight="8dp"/>
Run Code Online (Sandbox Code Playgroud)

但是,我没有在RecyclerView课堂上看到这种可能性.

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

在这种情况下,可以直接定义边距和/或将自定义分隔视图添加到列表项的布局中,还是有更好的方法来实现我的目标?

android divider android-recyclerview

883
推荐指数
28
解决办法
56万
查看次数

Android使用gridlayoutmanager在recyclerview中的最后一个元素下添加间距

我试图在增加最后一个元件行下面的间距RecyclerViewGridLayoutManager.ItemDecoration为了这个目的,我使用自定义底部填充,当它的最后一个元素如下:

public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
private int space;
private int bottomSpace = 0;

public SpaceItemDecoration(int space, int bottomSpace) {
    this.space = space;
    this.bottomSpace = bottomSpace;
}

public SpaceItemDecoration(int space) {
    this.space = space;
    this.bottomSpace = 0;
}

@Override
public void getItemOffsets(Rect outRect, View view,
                           RecyclerView parent, RecyclerView.State state) {

    int childCount = parent.getChildCount();
    final int itemPosition = parent.getChildAdapterPosition(view);
    final int itemCount = state.getItemCount();

    outRect.left = space;
    outRect.right = space;
    outRect.bottom = space; …
Run Code Online (Sandbox Code Playgroud)

android gridlayoutmanager android-recyclerview

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

如何确定交错网格布局管理器中的列位置

我正在使用交错的回收站视图布局来获取照片列表.我希望两侧的间距为零,同时两列之间仍有空间.我正在使用项目装饰子类来获取附加照片中看到的间距.我知道我可以控制左右间距,但问题是我从来不知道照片所在的列.看起来交错的布局管理器会进行一些自己的重新排序.我尝试过使用getChildAdapterPosition但它似乎返回数据源数组中的位置而不是布局中照片的实际位置.知道我应该如何处理这个问题吗? 在此输入图像描述

android staggeredgridlayout

17
推荐指数
1
解决办法
6424
查看次数

在RecyclerView中水平居中项目(使用GridLayoutManager)

我试图将所有项目水平放置在每一行中 RecyclerView

我尝试了很多东西:RelativeLayout作为父亲,然后使用layout_centerInParent,使用基本的android:layout_gravity ="center",尝试添加一些空间元素,使用权重和.... item_row.xml
但我没有成功:(

是)我有的

一只忙碌的猫

我想要的是

一只忙碌的猫

在活动中

recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
Run Code Online (Sandbox Code Playgroud)

item_row.xml

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="4dp"
card_view:cardUseCompatPadding="true">

<!--   Recycler View Item Row   -->
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">


    <ImageView
        android:id="@+id/imgThumbnail"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:background="@android:color/black" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="item name"
            android:id="@+id/txtName"
            android:layout_margin="5dp"
            android:singleLine="false"
            android:lines="2"
            android:gravity="center" />

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:id="@+id/txtCategory"
                android:textStyle="italic"
                android:textColor="#496fa9"
                android:text="subtitle"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:paddingLeft="10dp"
                android:layout_gravity="center" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="48dp"
                android:layout_height="wrap_content"
                android:background="@android:color/black"
                android:adjustViewBounds="true"
                android:scaleType="fitCenter"
                android:padding="8dp"/> …
Run Code Online (Sandbox Code Playgroud)

android android-layout gridlayoutmanager android-recyclerview

11
推荐指数
1
解决办法
7148
查看次数

带有自定义分隔符的GridLayoutManager

我想添加自定义分隔在RecyclerViewGridLayoutManager,但没有得到成功,我寻觅了很多,看着下面提及的答案,但它并没有帮助我

链接1
链接2
链接3

我想在每个项目之间放置黑线RecyclerView,如下所示.

在此输入图像描述

我在每行之间都有水平线,但是也无法找到如何在列之间获得这些线.

chintan soni的答案完美无缺,但它仅在一个场景中创建问题,当我有5个视图时,它还显示其他3个项目的分隔符,如下所示:

在此输入图像描述

android gridlayoutmanager android-recyclerview

6
推荐指数
2
解决办法
3419
查看次数

在 GridLayoutManager 中的两列之间划分宽度

我用作GridLayoutManager我的回收站视图的布局管理器。

  mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2));
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此处输入图片说明

但我想等分两列之间的宽度。我怎样才能做到这一点?

android android-layout gridlayoutmanager android-recyclerview

6
推荐指数
1
解决办法
8029
查看次数

删除回收器视图网格布局中的默认间距

我正在使用StaggeredGridLayout经理进行回收查看

mStaggerGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager
                .VERTICAL);
Run Code Online (Sandbox Code Playgroud)

现在,我想删除列和行之间的默认间距.像这张图片中的东西,但只有2列.

在此输入图像描述

android gridview android-recyclerview

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

制作"多线"回收者视图

所以,通常,a RecyclerView是水平的或垂直的,如下图所示:

在此输入图像描述

生产上述两种产品都没有问题.但现在,我想制作一个RecyclerView"多线"-ey(我不知道这是否是一个正确的命名方式).基本上,就像在记事本中一样,如果选中"自动换行",则屏幕外文本将被发送到下一行.

所以行为就像,HorizontalRecyclerView但在下面之前,项目将首先水平填充.

假设子项的每个大小都相同,那么将它放在屏幕中心也是一件好事.

类似:

在此输入图像描述

但不喜欢(它不在屏幕中心):

在此输入图像描述

顺便说一句,我不知道我喜欢管理我的馆藏,RecyclerView而不是TableLayout因为我以前从未使用TableLayout过,而且RecyclerView似乎最有效的方法是重用馆藏布局.

android android-recyclerview

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