android recyclerView水平和垂直间距

2024-01-23

大家好,我对 android 很陌生,我在 recyclerview 方面遇到了问题。我试图在回收视图中的图像视图之间添加空间,但没有成功。

我想要的是

怎么了

以下是我的实现ItemOffsetDecoration.java

public class ItemOffsetDecoration extends RecyclerView.ItemDecoration {
    private int itemOffset;

    public ItemOffsetDecoration(int itemOffset) {
        itemOffset = itemOffset;
    }

    public ItemOffsetDecoration(@NonNull Context context, @DimenRes int itemOffsetId) {
        this(context.getResources().getDimensionPixelSize(itemOffsetId));
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
                               RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        outRect.set(itemOffset, itemOffset, itemOffset, itemOffset);
    }
}

购物.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/shopping_bg"
    tools:context=".activities.HomepageActivity$PlaceholderFragment">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/shoppingRV"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            android:padding="@dimen/grid_horizontal_spacing"/>
</RelativeLayout>

购物.java

public class Shopping extends Fragment implements InstaPukkeiRecyclerViewAdapter.ItemClickListener {
    InstaPukkeiRecyclerViewAdapter adapter;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.tab_shopping, container, false);
        processRV(rootView);
        return rootView;
    }
    private void processRV(View layout) {
        RecyclerView recyclerView = (RecyclerView) layout.findViewById(R.id.shoppingRV);
        int noOfColumns = 3;
        recyclerView.setLayoutManager(new GridLayoutManager(getContext(), noOfColumns));
        adapter = new InstaPukkeiRecyclerViewAdapter(getContext(), LogoIds.SHOPPING_SITE_LOGOS);
        adapter.setClickListener(this);
        recyclerView.setAdapter(adapter);
        recyclerView.addItemDecoration(new ItemOffsetDecoration(getContext(), R.dimen.grid_horizontal_spacing));
    }
}

请在这里帮助我。提前致谢。

EDITitem_layout.xml

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

    <ImageView
        android:id="@+id/logoImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:adjustViewBounds="true" />
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
    android:marginLeft="18dp"
    android:marginRight="18dp"
    android:id="@+id/logoImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="fitXY"
    android:adjustViewBounds="true" />
  </LinearLayout>

使用项目 XML 中的此布局更改项目布局。您使父级(LinearLayout)高度与父级匹配,这就是您获得垂直全屏空间的原因

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android recyclerView水平和垂直间距 的相关文章

随机推荐

  • 检查号码是否在范围内

    我正在检查来自输入字段的号码是否在范围内 function timeCheck var time trim enterTime value Number prototype between function min max return t
  • 如何知道 Node.js Express 服务器何时启动并可供使用

    有一个应用程序 我想启动节点快速服务器 然后在服务器启动后立即在同一台计算机上自动启动浏览器 如何查询服务器是否已启动并准备就绪 我真的希望在 listen 调用上有某种回调 但似乎没有 我可以等待比我预期的时间更长的时间 但是这是在现场的
  • 用作 Google Chrome 书签

    先说一下我遇到的问题 我需要多次填写同一个网页 而且我需要填写的内容大部分是相同的 但分散在整个网页中 我想到的解决方案 我知道有一种方法可以创建一些 javascript 函数 将其放在 google 书签后面 这样当您在该页面上时 只需
  • Composer 2.0.8 问题 package-versions-deprecated

    使用 PHP 7 2 Installing composer package versions deprecated 1 8 0 Extracting archive Plugin initialization failed include
  • 可以裁剪相机预览吗?

    我还没有找到任何方法来裁剪相机预览然后将其显示在 SurfaceView 上 Android 是否可以裁剪相机预览 您可以在没有覆盖视图的情况下执行此操作 这不适用于所有情况 子类化 ViewGroup 将 SurfaceView 添加为唯
  • Jasper Reports 在新页面上的子报表

    我有一个 jasper 报告 由 6 个子报告组成 每个子报告都有自己的标题部分 现在我需要每个报告都从新页面开始 我尝试添加分页符 但它对我不起作用 在研究这个问题时 我遇到了一个设置技巧isTitleNewPage to true at
  • 服务器打印到标准输出而不是套接字

    我正在研究 UNIX 网络编程中的示例 并且我已将 daytimeclientserv c 改编成此处的代码 服务器按预期向客户端发送日期 时间字符串 但启动时收到的第一个请求除外 当我第一次运行服务器程序 在局域网中的另一台计算机上 时
  • Linq lambda 表达式中的布尔短路求值

    我有以下 Linq lambda 表达式 private IEnumerable
  • 使用 postgresql 数据库时,uwsgi 下的 django 应用程序无法启动

    我设置了一个应用程序AWS 上的 Ubuntu 14 04 gt NGINX gt UWSGI gt DJANGO 应用程序 使用 sqlite3 时该应用程序运行完全正常 但是当我使用django db backends postgres
  • ZfcUser 中的用户状态到底是什么?

    谁能告诉我 用户状态 是什么ZfcUser https github com ZF Commons ZfcUser正在做什么以及为什么我们可能需要它 这个用户状态是什么意思 我认为这不是它所指的角色 可以通过向 zfcuser global
  • Android/SQLite - WHERE 子句上的位操作

    我想知道在 Android 中是否可以做这样的事情 public Cursor getFlowsByCategory int type int categoryID int limit SQLiteDatabase db dbHelper
  • canvas 与 openGL 的功能是什么?

    我知道如果你向 openGL 发送静态且很少变化的纹理 例如像图块一样 openGL 会产生奇迹 但当你有不断变化的精灵时就不行了 是否有可能纯粹从画布上创建类似绑架这样的游戏 它的性能如何 可以使用画布创建诸如绑架之类的游戏 但最终您将在
  • 在经典 ASP 中使用“错误继续下一步”,以及如何处理错误

    大家好 我想问一个关于on error resume next 假设我们有一个循环来浏览记录集 例如 Do while not rs EOF query UPDATE conn execute query rs movenext loop
  • 如何减小tesseract生成的PDF的大小?

    我的 网络 应用程序的设置如下 我获取用户上传的 PDF 文件 对它们运行 OCR 并向他们显示 OCRed PDF 由于一切都在线 因此最小化生成的 PDF 文件的大小是减少用户加载和等待时间的关键 我从用户那里收到的文件是sample
  • 从 preg_match_all() 获取行号

    我正在使用 PHP 的 preg match all 来搜索使用 file get contents 导入的字符串 正则表达式返回匹配项 但我想知道在哪个行号找到这些匹配项 实现这一目标的最佳技术是什么 我可以将文件作为数组读取 并为每一行
  • Jekyll 将每个换行符转换为换行符

    我正在使用 Jekyll 和 kramdown 来制作一个静态站点 今天我注意到每当我将同一个句子继续到新行时 Jekyll 就会插入一个 br 标记那里 以前从未发生过这种情况 由于我所有的 Markdown 文件都没有超过 80 个字符
  • 用于清除 RStudio 中命令历史记录的命令或键盘快捷键

    相当于按 RStudio 历史记录窗口中的小扫帚按钮清除当前会话中的整个历史记录缓冲区的命令或键盘快捷键是什么 Note that I don t mean Ctrl L which clears the command window I
  • 从模板创建用于在 Qt 中打印的 PDF 文档

    我编写一个应用程序 当用户在对话框窗口中插入数据 文档标题 发件人姓名和地址等 时 我的应用程序应该根据该用户数据生成一个 pdf 文件 PDF 文件应该有定义的布局 如下所示 我尝试这样做QPdfWriter但在 pdf 中对齐文本时遇到
  • 为什么接口方法没有主体

    要实现多重继承 我们必须使用接口 但是为什么接口方法没有主体 为什么必须在派生类中重写它们呢 我真的想要一个清晰的答案 不涉及太多计算机术语 我似乎无法理解这一点 我参考了各种参考资料 因为 Java 与 C 或 Eiffel 等语言相比
  • android recyclerView水平和垂直间距

    大家好 我对 android 很陌生 我在 recyclerview 方面遇到了问题 我试图在回收视图中的图像视图之间添加空间 但没有成功 我想要的是 怎么了 以下是我的实现ItemOffsetDecoration java public