Android列表视图项的滑入按钮效果
我正在将iPhone应用程序移植到android应用程序中,其中一个困难是重新创建iPhone固有的功能 我发现了iPhone的本机功能: 当用户在列表视图中对列出的项目执行滑动触摸时,会出现删除按钮 安卓系统中有这个版本吗?Android列表视图项的滑入按钮效果,android,listview,android-listview,slidetoggle,Android,Listview,Android Listview,Slidetoggle,我正在将iPhone应用程序移植到android应用程序中,其中一个困难是重新创建iPhone固有的功能 我发现了iPhone的本机功能: 当用户在列表视图中对列出的项目执行滑动触摸时,会出现删除按钮 安卓系统中有这个版本吗? 它可以被使用和重用/定制吗?我想您可以尝试在listview本身上实现手势侦听器,但可能很难获得正确的id。因为我自己没有这样做,所以我无法准确回答 否则,您可能可以将自己的视图作为listview中的项,并在所有孩子上设置一个手势侦听器 对于一些基本的阅读和代码示例来
它可以被使用和重用/定制吗?我想您可以尝试在listview本身上实现手势侦听器,但可能很难获得正确的id。因为我自己没有这样做,所以我无法准确回答 否则,您可能可以将自己的视图作为listview中的项,并在所有孩子上设置一个手势侦听器
对于一些基本的阅读和代码示例来说,这只是实现起来有点复杂而已。这就是我从更高的层次上所要做的
希望这有点道理。但我肯定认为这是最简单的方法,因为我已经用类似的功能做过几次了 我不认为有任何内置的API函数可以做到这一点
但是,一种解决方法是在listitem中的视图上使用onFling函数。你也许可以用它来实现你想要的。这就是我如何实现这种效果的。我们有一个ListView lvSimple,并将onTouchListener添加到我们的lvSimple中。这是我的工作代码
float historicX = Float.NaN, historicY = Float.NaN;
static final int DELTA = 50;
enum Direction {LEFT, RIGHT;}
...
ListView lvSimple = (ListView) findViewById(R.id.linLayout);
...
lvSimple.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event)
{
// TODO Auto-generated method stub
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
historicX = event.getX();
historicY = event.getY();
break;
case MotionEvent.ACTION_UP:
if (event.getX() - historicX < -DELTA)
{
FunctionDeleteRowWhenSlidingLeft();
return true;
}
else if (event.getX() - historicX > DELTA)
{
FunctionDeleteRowWhenSlidingRight();
return true;
} break;
default: return false;
}
return false;
}
});
float historicX=float.NaN,historicY=float.NaN;
静态最终积分增量=50;
枚举方向{左,右;}
...
ListView lvSimple=(ListView)findViewById(R.id.linLayout);
...
lvSimple.setOnTouchListener(新的OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件)
{
//TODO自动生成的方法存根
开关(event.getAction())
{
case MotionEvent.ACTION\u DOWN:
historicX=event.getX();
历史性=event.getY();
打破
case MotionEvent.ACTION\u UP:
if(event.getX()-historicX<-DELTA)
{
函数DeleteRowWhenSlidingLeft();
返回true;
}
else if(event.getX()-historicX>DELTA)
{
函数DeleteRowWhenSlidingRight();
返回true;
}中断;
默认:返回false;
}
返回false;
}
});
其中,向左滑动时调用函数FunctionDeleteRowWhenSlidingLeft(),向右滑动时调用函数DeleteRowWhenSlidingRight。在此函数中,需要为动画粘贴代码
另外,我很抱歉我的英语不好。总是乐于助人。相反,他们有特殊的行为。。就像长时间点击一个选项列表……我真的很想知道这一点……)