单击时,Recycler Item不提供反馈

时间:2016-05-09 11:12:27

标签: android android-recyclerview

这是我在回收站视图中使用的行项目:

<RelativeLayout
    android:id="@+id/requestCard"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="16sp"
    android:paddingBottom="16sp"
    android:background="?android:attr/selectableItemBackground"
    android:descendantFocusability="blocksDescendants"
    android:clickable="true">

    <!--<de.hdodenhof.circleimageview.CircleImageView-->
    <!--android:id="@+id/avatar"-->
    <!--android:layout_width="@dimen/list_item_avatar_size"-->
    <!--android:layout_height="@dimen/list_item_avatar_size"-->
    <!--android:layout_marginRight="16dp"/>-->

    <TextView
        android:id="@+id/test"
        android:text="testing ripple"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?attr/textAppearanceListItem"/>

</RelativeLayout>

以编程方式实现另一个实现

int mBackground;

private final TypedValue mTypedValue = new TypedValue();

public ItemAdapter(Context context, ListFunctionHolder.onListFunctionItemListener listFunctionItemListener, ArrayList<ContactModel> models) {
    layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mContext = context;
    context.getTheme().resolveAttribute(R.attr.selectableItemBackground, mTypedValue, true);
    itemListener = listFunctionItemListener;
    contactModels = models;
    mBackground = mTypedValue.resourceId;
}

 @Override
public ConversationHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = layoutInflater.inflate(R.layout.zr_people_item_zone_has_image, parent, false);

    return new ConversationHolder(this, view, viewType, itemListener);
}

我正在使用appCompact风格:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

这些是关于如何从SO中的不同线程解决此问题的一些建议,并且在我的回收站视图上单击项目时仍然没有反馈。如何获得回收者视图的反馈。

ZoneContactLoaderAdapter zoneContactLoaderAdapter;

public ConversationHolder(ZoneContactLoaderAdapter zoneContactLoaderAdapter, View itemView, int viewType, ListFunctionHolder.onListFunctionItemListener onListFunctionItemListener) {
    super(itemView);
    // do some stuff
    listener = onListFunctionItemListener;
    itemView.setOnClickListener(this);
    this.zoneContactLoaderAdapter = zoneContactLoaderAdapter;
    @Override
    public void onClick (View v){
        zoneContactLoaderAdapter.notifyItemChanged(this.getLayoutPosition());
        // listener.onSelected(v, this.getLayoutPosition());
    }
}

0 个答案:

没有答案