我为listview编写了一个自定义适配器。现在它包含不同类型的项目(比如标题和文本)。
标题不需要附加操作,因此我不希望在单击时看到项目触摸突出显示。但是,文本可以执行对于每个文本不同的动作。这是我的自定义适配器的代码。
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyItemHolder myItemHolder;
if (convertView == null) {
//...;
convertView.setTag(myItemHolder);
} else {
myItemHolder = (MyItemHolder) convertView.getTag();
}
MyItem myItem = myItems.get(position);
if (myItem.isTitle()) {
convertView.setOnClickListener(null);
} else {
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do nothing at the moment
}
});
}
return convertView;
}
如您所见,设置空单击侦听器会禁用列表的项目单击动画,所以我很好。但是,在设置空单击侦听器时,它也会删除此动画(实际上调用setOnClickListener
会删除动画)。
如果它可以帮助我的列表视图xml:
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/some_id"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"/>
如何让我的listview中的默认项目点击动画,以查找我的适配器内不是标题的项目?
答案 0 :(得分:0)
您应该在每个列表项上使用OnItemClickListener而不是onclick侦听器。禁用on&#34;标题&#34;上的onClick效果类型项,您可以在适配器类中使用isEnabled方法。
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
return super.isEnabled(position);
}