当前位置: 首页 > 知识库问答 >
问题:

如何在RecyclerView中滑动删除时添加背景色为红色的布局

谭献
2023-03-14
private fun swipeToDeleteHandler() {
    simpleItemTouchCallback = object : ItemTouchHelper.SimpleCallback(
        0,
        ItemTouchHelper.LEFT
    ) {

        override fun onMove(
            recyclerView: RecyclerView,
            viewHolder: RecyclerView.ViewHolder,
            target: RecyclerView.ViewHolder
        ): Boolean {
            Toast.makeText(this@MainActivity, "on Move", Toast.LENGTH_SHORT).show()
            return true
        }

        override fun onSwiped(viewHolder: RecyclerView.ViewHolder, swipeDir: Int) {
            Toast.makeText(this@MainActivity, "Removed! ", Toast.LENGTH_SHORT).show()
            //Remove swiped item from list and notify the RecyclerView
            deleteRowFromDb(viewHolder.adapterPosition + 1)
            //adapter.notifyItemChanged(viewHolder.adapterPosition)
        }
    }
}

共有1个答案

赵越
2023-03-14

如果您只需要在swipe上删除它的元素,那么最简单的方法就是在ItemTouchHelper.SimpleCallBack上绘制它

override fun onChildDraw(canvas, recyclerView, viewHolder, ..) {
    val itemView = viewHolder.itemView
    val itemHeight = itemView.bottom - itemView.top

    // Draw the red delete background
    background.color = backgroundColor
    background.setBounds(
            itemView.right + dX.toInt(),
            itemView.top,
            itemView.right,
            itemView.bottom
    )
    background.draw(canvas)

    // Calculate position of delete icon
    val iconTop = itemView.top + (itemHeight - inHeight) / 2
    val iconMargin = (itemHeight - inHeight) / 2
    val iconLeft = itemView.right - iconMargin - inWidth
    val iconRight = itemView.right - iconMargin
    val iconBottom = iconTop + inHeight

    // Draw the delete icon
    icon.setBounds(iconLeft, iconTop, iconRight, iconBottom)
    icon.draw(canvas)

    super.onChildDraw(canvas, recyclerView, viewHolder, ...)
}

原题

但是如果您需要的不仅仅是在滑动时删除项目,例如,您需要两个按钮,如“删除”和“编辑”,您可以使用第三方库,像这样的一个

 类似资料:
  • 问题内容: 我正在使用(org.imgscalr.Scalr)库来调整某些图像的大小,但是在调整大小后,背景变成红色。我的代码是: 你能帮助我吗? 谢谢 问题答案: 您忽略的其余代码(保存ImageIO)以及正在读取的PNG是否具有透明通道(如@Daft Punk所指出的)在这里很重要。 我愿意打赌$ 1,说您的PNG中包含Alpha通道,而JPG不支持Alpha;不幸的是,Java的JPG编码器

  • 我正在尝试为我的项目创建一个台球游戏,我很难同时添加棍子和球。此外,当我添加球时,JFrame的背景变成白色,它实际上应该是绿色(桌子的颜色)。 非常感谢你的帮助。 我试着使用。例如。这不管用

  • 本文向大家介绍向Bootstrap 4卡添加灰色背景色,包括了向Bootstrap 4卡添加灰色背景色的使用技巧和注意事项,需要的朋友参考一下 要为Bootstrap 4卡添加灰色背景色,请将该卡类与bg-dark上下文类一起使用- 将卡主体设置在相同的<div>类中- 让我们看看完整的示例,向Bootstrap卡添加灰色背景色- 示例

  • 问题内容: 在SO和Web上,我都经常看到这个问题。但是它们都不是我要找的东西。 如何仅使用CSS将颜色叠加层添加到背景图像? HTML示例: CSS示例: 请注意: 我想仅通过使用CSS来解决此问题。即我不想在颜色叠加的div“ testclass”内添加子div。 这不应该是“悬停效果”,我只想向背景图像添加色彩过渡。 我希望能够使用不透明度,即我正在寻找一种允许RGBA颜色的解决方案。 我正

  • 问题内容: 我想知道,当我向下或向上滚动时,我的图像和布局的颜色会乱七八糟,我使用recyclerview创建了cardview。并设置图片(在点击时更改颜色,以了解其用户喜欢的项目),并将setbackgroundcolor(随机选择)设置为父版面,以使Cardview更具吸引力。但是当我滚动1.图像更改位置的图像时,2.布局背景自动更改颜色。 我在这里发布适配器的代码。 } 问题答案: 我已经

  • 本文向大家介绍向元素添加红色背景色以使用Bootstrap设置危险动作,包括了向元素添加红色背景色以使用Bootstrap设置危险动作的使用技巧和注意事项,需要的朋友参考一下 使用.btn-danger类可以为按钮设置危险动作,即元素的红色背景色。 您可以尝试运行以下代码来实施危险动作- 示例