ViewHolder中的onClickListener有时只被调用

时间:2017-04-08 11:21:21

标签: java android android-recyclerview adapter

我有一个带有适配器和ViewHolder的RecyclerView。

   public class MainListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    private TextView nameLabel;

    public MainListViewHolder(View v){
        super(v);

        nameLabel = (TextView) v.findViewById(R.id.nameLabel);
        v.setOnClickListener(this);

        context = v.getContext();
    }



    public void bindEvent(Event e){
        nameLabel.setText(e.getName().toUpperCase());
    }

    @Override
    public void onClick(View view) {
        Log.v(TAG, "ViewHolder onClick triggered");
        Intent intent = new Intent(context, EventViewPagerActivity.class);
        context.startActivity(intent);
    }

然而onClick只会被调用,我执行时找不到特定的模式。

编辑:

现在将此添加到我的ListItem的根目录。

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true">

android:focusableInTouchMode="false"

在每个子项目中。

不幸的是,这并没有帮助。

1 个答案:

答案 0 :(得分:0)

ViewHolder中的某些子视图是可调焦的,请尝试将其添加到ViewHolder布局中的根项xml

(u.r-1.0*v.r)' @ error/fx.c/FxGetSymbol/183
  1.
  convert: divide by zero