首页 > 其他分享 >RecyclerView动态添加item背景

RecyclerView动态添加item背景

时间:2024-12-29 19:43:11浏览次数:5  
标签:xml androidx implementation item 添加 android RecyclerView

本意是解决RecyclerView动态添加背景后item高度不正确的bug。一开始以为是RecyclerView的问题,后来发现是background.xml多加了padding。把背景xml的padding删掉后就正常了。但demo写都写了存一下吧。

需求:根据item在RecyclerView的不同位置添加不同背景。

解:给RecyclerView写一个adapter,通过重载onBindViewHolder设置背景。

MainActivity.java background.xml activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello World!"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent" />
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/cats_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginHorizontal="16dp"
        android:nestedScrollingEnabled="false"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click me">
    </Button>

  </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

另外碰到了gradle的一个报错: 2 files found with path 'META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version'.

原因是一开始用的android support的RecycleView,android support和androidx不兼容,都改成androidx就好了。

plugins {
  alias(libs.plugins.android.application)
}

android {
  namespace = "com.example.myapplication"
  compileSdk = 34

  defaultConfig {
    applicationId = "com.example.myapplication"
    minSdk = 28
    targetSdk = 34
    versionCode = 1
    versionName = "1.0"

    testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  }

  buildTypes {
    release {
      isMinifyEnabled = false
      proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
    }
  }
  compileOptions {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
  }
}

dependencies {
  implementation("androidx.appcompat:appcompat:1.1.0")
  implementation(libs.material)
  implementation("androidx.constraintlayout:constraintlayout:1.1.3")
  implementation("androidx.recyclerview:recyclerview:1.1.0")
}
build.gradle.kts

 

标签:xml,androidx,implementation,item,添加,android,RecyclerView
From: https://www.cnblogs.com/capterlliar/p/18635973

相关文章

  • wiper-item
    wiper-item基础库1.0.0开始支持,低版本需做兼容处理。微信Windows版:支持微信Mac版:支持微信鸿蒙OS版:支持渲染框架支持情况:Skyline(使用最新Nighly工具调试)、WebView功能描述仅可放置在swiper组件中,宽高自动设置为100%。属性说明属性类型默认值必填说......
  • Android 13自定义添加模块文件编译到img镜像中
    前言全局说明一、说明1.1环境:Android131.2约定$Android#代表Android源码根目录,就是有build、system、vendor那些目录的同级目录。二、新建模块2.1新建模块文件夹在$Android安卓根目录建立你想要的目录,这里以custom_files名字为例,文件夹名根据项目需要修......
  • 解决方案 | 如何实现右键添加【管理系统环境变量】,更加方便快捷的直达环境变量修改页
       实现如上效果。本地新建一个bat文件,代码如下:(懒得编辑的直接下载做好的右键管理员身份运行就行:https://wwnb.lanzoul.com/il4DK2jbhwbi  ) @echooff::设置菜单名称、命令和图标路径set"menuName=管理系统环境变量"set"command=mshtavbscript:createobject......
  • 在Lazarus下的Free Pascal编程教程——向窗体动态添加组件
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已......
  • node.js+npm的环境配置以及添加镜像(保姆级教程)
    目录一、首先安装Node.js1.官网下载2.安装 3.测试是否安装成功 4.添加环境变量二、配置镜像 1.将npm默认的registry修改为淘宝registry2.检查是否成功 一、首先安装Node.js1.官网下载中文官网    英文官网可以在这里选择你想要的版本(英文官网)下面......
  • WPS中如何为指定区域的表格添加行或者列,同时不影响其它表格?
    大家好,我是小鱼。日常工作中会遇到这种情况:在一个Excel工作表中有多个表格,因为后期数据量增加就需要为指定区域的表格添加行或者列,但是不能影响其它表格。这种情况下我们应该怎么操作呢?为指定区域的表格添加行1、首先打开Excel表格,我们可以看到一共有三个表格,这时我们需要......
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之2
    前情提要这一次我们暂时抛开前面对“智能工厂的软件设计”的考虑--其软件智能产品就是应用程序。直接将这些思维方式和方法论运用在其具体应用场景中。本文是其中的一个应用场景。今天用了一个新的AI助手工具来交流。下面是就这一应用场景和“天意ChatGPT”(自称是ChatGPT......
  • WPF ComboBox multiselect via ControlTemplate of ComboxItem
    <Windowx:Class="WpfApp99.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • lpksetup.exe与 语言包安装 和 本地化设置 相关,主要用于帮助用户添加或删除 Windows
    lpksetup.exe是Windows操作系统中的一个可执行文件,位于C:\Windows\System32目录下。它与语言包安装和本地化设置相关,主要用于帮助用户添加或删除Windows操作系统的语言包。以下是对lpksetup.exe的详细介绍:1. 功能lpksetup.exe主要用于管理Windows操作系统的语......
  • 【WPF】WPF 双向绑定中的 SelectedItem 与 ViewModel 属性更新机制详解
     在WPF开发中,ListBox等控件常用于显示绑定的数据集合,其中ItemsSource绑定的数据源,在没有显式设置 Mode 属性时,默认为单向绑定,它将数据源集合的内容传递给 ListBox,但不会反向更新数据源。而SelectedItem ,默认情况下它的绑定是双向的。这意味着当用户在 ListBox 中......