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

在ListView/RecycerView中以编程方式“swipe-to-dissist”一个项目?

姜志行
2023-03-14

我需要能够以编程方式在RecycerView中删除一个项,而不需要用户实际滑动(相反,我希望在用户点击卡片中的按钮时删除该项)。我所见过的许多库似乎只支持实际的swips。

我尝试使用现有的库,通过在自己的编程方式上创建swipe来模拟MotionEvent,但这会干扰另一个水平swipe监听器,所以我想知道如何实现这一点,理想情况下是RecycerView,但如果有人知道如何创建ListView,我可以尝试修改它。

我已经研究了这个库以及其他库,以获得灵感,但我不知道如何以编程方式触发swips。

共有1个答案

杨景山
2023-03-14

ListViewRecycerView与自定义适配器一起使用,并在从DataList中移除项后调用NotifyDataSetChanged:

private void removeListItem(View rowView, final int position) {

    Animation anim = AnimationUtils.loadAnimation(this,
            android.R.anim.slide_out_right);
    anim.setDuration(500);
    rowView.startAnimation(anim);

    new Handler().postDelayed(new Runnable() {

        public void run() {

            values.remove(position); //Remove the current content from the array

            adapter.notifyDataSetChanged(); //Refresh list
        }

    }, anim.getDuration());
}
 类似资料:
  • 我已经尝试过使用GCP控制台仪表板创建项目,我想通过使用Google支持的API来管理项目,以编程方式创建项目。然后我想通过使用.NET项目的Big Query客户端库来执行Google Big Query操作。 有没有办法通过使用谷歌云API服务来创建谷歌云平台“项目”?

  • 问题内容: 我的活动中有和。最初设置为我需要一个功能,例如用户单击,绑定并显示为“ Wrap_Content”。到目前为止,我已经编写了代码 我的XMl文件 Java代码 ViewAnimationUtils类 在这段代码中,我正在调用类的函数。在扩展功能中,我将布局高度设置为,但是Listview渲染高度最多只显示一项。绑定有8个项目。 如何设置高度以显示列表中的所有项目? 问题答案: 这将为您

  • 当我从中删除一个项目时,我希望显示一个“swipe”动画,即该项目从屏幕上侧向移动。我相信使用支持“swipe to dissist”,但这是触摸启动的,而我希望能够以编程方式启动swipe。 我还尝试通过扩展来设置项动画器。使用这种方法,我可以让项目左右滑动,但不幸的是,列表中的间隙很快就会关闭,以至于在列表项间隙关闭之前,滑动不会完成。 有人知道怎么做吗?

  • 问题内容: 我使用eclipse在最初独立于eclipse创建的应用程序上工作。因此,该应用程序的目录结构绝对不适合日食使用。 我想以编程方式为该应用程序生成一个项目。在和文件是很容易的弄清楚,我已经了解到,项目存储在工作区下 不幸的是,这里的某些文件(尤其是)似乎是以某种二进制格式编码的。直觉上,我尝试使用-没有骰子反序列化它。因此,它似乎不是序列化的Java对象。 我的问题是:有没有一种方法可

  • 我有一个,它由sqlite数据库中的城市填充,该数据库在项目单击时调用。最近我添加了一个使用gps检测我的位置的选项,所以问题是我可以检测城市(即贝鲁特)并设置的文本,但问题是下拉筛选器打开时显示贝鲁特(这是正确的),但我仍然需要单击列表项来调用监听器,如何以编程方式这样做 如何: 输入活动(DONE) 检测位置(DONE) 设置文本视图的文本(DONE) 显示textview下拉列表(已完成)

  • 问题内容: 启动应用程序时,未选择任何行。但我想表明第一行已被选中。 这该怎么做?我是否需要设置行的颜色? 更新:我尝试了table.setRowSelectionInterval(0,0)。我知道它应该可以工作,但是有一条错误消息: 问题答案: 您可以调用setRowSelectionInterval来做到这一点: 选择第一行。