我已经建立了一个GridView
由一个Adapter
包含RelativeLayouts
顶层的ImageView
. 直到用户点击项目ImageView
才会显示,从而为个人创建“选定”效果View
。当用户点击不同的项目时,我将所选项目隐藏在先前选择的View
.
这很好,但我很好奇是否有更原生的 Android 方式来处理这种情况。我没有看到任何setSelected()
(ish)方法,但也许我忽略了一些东西?
的任何子类都View
应该有一个setSelected()
方法,其中包括RelativeLayout
. 您应该跟踪适配器中的选定位置,然后在您的getView()
方法中:
myRelativeLayout.setSelected(selectedPosition == position);
如果您使用处理state_selected
. 对于您的方法,您可以说:
myImageView.setVisibility(selectedPos == pos ? View.VISIBLE : View.INVISIBLE);
当您注册一次点击时(在您的OnItemSelectedListener
orOnItemClickListener
或您正在使用的任何内容中)只需调用您的适配器的setSelectedPosition()
方法与触摸的位置,然后调用您的适配器的notifyDatasetChanged()
方法。