在Android的列表视图中滑动时显示删除按钮

在Android的列表视图中滑动时显示删除按钮,第1张

概述扩展另一个Stackoverflow问题,我已经实现了一些手势检测代码,以便我可以检测我的listview(在FrameLayout中)中的行何时被刷过.我跟着Damian的问题/答案,关于如何从适配器获取单独的行/视图. How to get location (on screen) of row in listview 我在我的onFling中有代码获取行的视图,并尝试在我的xml布局中设置为 扩展另一个Stackoverflow问题,我已经实现了一些手势检测代码,以便我可以检测我的ListvIEw(在FrameLayout中)中的行何时被刷过.我跟着damian的问题/答案,关于如何从适配器获取单独的行/视图.
How to get location (on screen) of row in listview

我在我的onFling中有代码获取行的视图,并尝试在我的xml布局中设置为不可见的删除按钮可见.但是,这不会发生.我想知道如何在刷卡的列表视图中显示按钮?

class MyGestureDetector extends SimpleOnGestureListener {    @OverrIDe    public boolean onFling(MotionEvent e1,MotionEvent e2,float veLocityX,float veLocityY) {        try {            if (e2.getX() - e1.getX() > SWIPE_MIN_disTANCE                    && Math.abs(veLocityX) > SWIPE_THRESHolD_VELociTY) {                int itemID = MyClass.this.lv.pointToposition(                        (int) e1.getX(),(int) e1.getY());                Log.v("item ID",String.valueOf(itemID));                VIEw v = MyClass.this.adapter                        .getVIEwOnScreen(itemID);                button delete = (button) v.findVIEwByID(R.ID.button_delete);                delete.setVisibility(VIEw.VISIBLE);                //MyClass.this.adapter.notifyDataSetChanged();            }        } catch (Exception e) {            // nothing        }        return false;    }}

我的列表适配器代码与引用的问题相同.

编辑:我尝试在列表视图上使用getChildAt()来获取行的视图,当有一个或更少的项目时,这可以工作,但是当返回错误的视图时,错误的删除按钮变为可见.

编辑2:我使用问题here上的答案让它工作:

解决方法 我曾经在我的应用程序中实现了类似的功能.我这样做的方式:
public class MyGestureDetector extends SimpleOnGestureListener {    private ListVIEw List;    public MyGestureDetector(ListVIEw List) {        this.List = List;    }    //CONDITIONS ARE TYPICALLY VELociTY OR disTANCE        @OverrIDe    public boolean onFling(MotionEvent e1,float veLocityY) {        if (INSERT_CONDITIONS_HERE)            if (showDeletebutton(e1))                return true;        return super.onFling(e1,e2,veLocityX,veLocityY);    }    private boolean showDeletebutton(MotionEvent e1) {        int pos = List.pointToposition((int)e1.getX(),(int)e1.getY());        return showDeletebutton(pos);    }    private boolean showDeletebutton(int pos) {        VIEw child = List.getChildAt(pos);        if (child != null){            button delete = (button) child.findVIEwByID(R.ID.delete_button_ID);            if (delete != null)                if (delete.getVisibility() == VIEw.INVISIBLE)                    delete.setVisibility(VIEw.VISIBLE);                else                    delete.setVisibility(VIEw.INVISIBLE);            return true;        }        return false;    }}

这对我有用,希望你能让它发挥作用,或者它至少会给你一些暗示.

总结

以上是内存溢出为你收集整理的在Android的列表视图中滑动时显示删除按钮全部内容,希望文章能够帮你解决在Android的列表视图中滑动时显示删除按钮所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存