Android 单击时如何在ListView中设置项目动画?

Android 单击时如何在ListView中设置项目动画?,android,listview,animation,swipe-gesture,Android,Listview,Animation,Swipe Gesture,我希望有一个ListView,当我单击该项目时,该视图会滑出到左侧 因此,我: listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { arg1.startA

我希望有一个ListView,当我单击该项目时,该视图会滑出到左侧

因此,我:

listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            arg1.startAnimation(openAnimation);
        }
    });
listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
arg1.startAnimation(openAnimation);
}
});
但是,动画应用于列表中的不同项目,而不是单击的项目。这种行为似乎是随机的,因为有时它同时发生在多个项目上

正如我所怀疑的,这是因为适配器重用其视图来创建项的方式。我在适配器中修改了getView方法,以便在每次调用新视图时对其进行充气。那么动画就不会再发生了

有办法解决这个问题吗?我试图将动画移动到适配器内部,但无法将其与Listview上的其他操作关联


最终,我希望该项目是可点击的,但当向左/向右滑动时,会显示删除按钮(iOS删除行为)。我走错方向了吗?这应该是可能的,因为Android可以在通知栏中实现滑动删除。

我建议您也检查线程

我认为,不必修改适配器以适应这种行为,这是不可能的。据我所知,您在实现识别不同ListView行上的滑动手势的代码时没有任何问题,只有在相应行上的动画应该遵循此手势

我已经重写了适配器,以适应至少两种行类型:普通行和要删除的行。在适配器的“getView()”方法中,应该只重用普通视图的convertView。要删除的行不应重复使用它们,以便为其中一行设置动画不会修改其他行。
单击普通行后,应首先告诉适配器,单击位置上的行现在属于要删除的类型,调用.notifyDatasetChanged(),然后在该行上启动动画。

“iOS删除行为”否!Android不是iOS!请不要使用iOS设计模式。Android用户期望的是Android用户体验,而不是iPhone用户体验。我理解您的担忧。我本人完全反对这个想法。但我不是在这里做决定的人。但你必须承认,安卓系统上有“刷除”功能。实现就在那里,只是不同的表示。通知窗格可能有一个listview的自定义实现,因为基本listview类不支持此“滑动以删除”行为。如何仅在该行上启动动画?I'm View v=充气机。充气(R.layout.list\u View\u custom,null);然后在侦听器中,我有final Animation Animation=AnimationUtils.loadAnimation(parent.getContext(),R.anim.fade_in_expand);v、 startAnimation(动画);但什么也没发生。