Android 仅在特定listview项目上显示项目

Android 仅在特定listview项目上显示项目,android,listview,listviewitem,Android,Listview,Listviewitem,我试图让一个按钮显示在我的列表项上(在XML中声明为android:visibility:“gone”),以便在我对其执行某些手势时显示为可见。但是,如何才能真正正确地通知getView方法仅在listview项上显示按钮 我尝试使用getChildAt(position),结果一次显示了几个按钮 我尝试传递位置,例如,我检测到该手势是从pointToPosition执行的,并将其传递到适配器中,以供getView方法显示,但它存在同时显示多个的相同问题 有人知道如何解决这个问题吗?我想您可能

我试图让一个按钮显示在我的列表项上(在XML中声明为android:visibility:“gone”),以便在我对其执行某些手势时显示为可见。但是,如何才能真正正确地通知getView方法仅在listview项上显示按钮


我尝试使用getChildAt(position),结果一次显示了几个按钮

我尝试传递位置,例如,我检测到该手势是从pointToPosition执行的,并将其传递到适配器中,以供getView方法显示,但它存在同时显示多个的相同问题


有人知道如何解决这个问题吗?

我想您可能对Adapter.getView()的工作原理有误解。它的目的是在呈现ListView时创建或重用布局。它还需要快速,因此不鼓励在此方法中进行条件操作。尽管ListView.getChildAt()可能可以工作,但它并没有有效地使用API。除非您使用的是ArrayAdapter,否则您的适配器将有一个setViewBinder()(如果是这样,我建议使用,因为还有其他功能)。使用ViewBinder实现切换按钮的可见性


如果您希望继续使用ArrayAdapter,请使用
ListView.getChildAt(int)
findViewById(R.id.your_按钮).setVisibility()
。如果这是您已经尝试过的,并且设置的所有按钮都可见,那么请发布相关代码。

您使用什么事件处理程序进行手势?你指的是哪种getView方法?@Dan我指的getView方法是adapter类中的方法。我制作了一个“自制”手势方法,如果执行这样的手势,该方法将返回true。@基本上,当MOTIONEVENT检测到actiondown时,我将通过pointToPosition方法记录它的选定项索引。这应该足以让我识别显示按钮所需的id。@但是,这里的问题是,我如何实际使用此选定项索引仅显示选定项上的按钮。以上两种方法,getChildAt(position)和自定义getView方法,都会在超过我要求的项目上显示按钮。你的意思是你用自己的手势解释器替换了GestureOverlayView吗?您还可以粘贴用于创建适配器的代码吗?谢谢,我将尝试查看是否可以恢复以前的代码,如果可以,将代码发布。谢谢