1

我已经建立了一个GridView由一个Adapter包含RelativeLayouts顶层的ImageView. 直到用户点击项目ImageView才会显示,从而为个人创建“选定”效果View。当用户点击不同的项目时,我将所选项目隐藏在先前选择的View.

这很好,但我很好奇是否有更原生的 Android 方式来处理这种情况。我没有看到任何setSelected()(ish)方法,但也许我忽略了一些东西?

4

1 回答 1

2

的任何子类都View应该有一个setSelected()方法,其中包括RelativeLayout. 您应该跟踪适配器中的选定位置,然后在您的getView()方法中:

myRelativeLayout.setSelected(selectedPosition == position);

如果您使用处理state_selected. 对于您的方法,您可以说:

myImageView.setVisibility(selectedPos == pos ? View.VISIBLE : View.INVISIBLE);

当您注册一次点击时(在您的OnItemSelectedListenerorOnItemClickListener或您正在使用的任何内容中)只需调用您的适配器的setSelectedPosition()方法与触摸的位置,然后调用您的适配器的notifyDatasetChanged()方法。

于 2013-03-02T00:57:26.187 回答