ViewHolder在方法onSwiped()中没有显示按钮

时间:2016-04-14 12:32:56

标签: java android button android-recyclerview

我对onSwiped方法存在很大问题,并将按钮的可见性设置为VISIBLE。这里是我的代码Java Class:

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
mRecyclerView.getAdapter();
StepListAdapter.ViewHolder listViewHolder = (StepListAdapter.ViewHolder) viewHolder;
    listViewHolder.itemView.setBackgroundColor(mContext.getResources().getColor(R.color.accent));
    listViewHolder.titleView.setVisibility(View.GONE);
    listViewHolder.locationView.setVisibility(View.GONE);
    listViewHolder.status.setVisibility(View.GONE);
    listViewHolder.undoButton.setVisibility(View.VISIBLE);
    listViewHolder.undoButton.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
      //Do something
                }
  });
}

这是我的xml布局文件:

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5sp"
android:layout_marginRight="5sp"
android:clickable="true"
android:foreground="?selectableItemBackground"
card_view:cardCornerRadius="1sp"
card_view:cardElevation="2sp"
card_view:cardUseCompatPadding="true"
card_view:contentPadding="5sp">
<RelativeLayout
    android:background="@color/cardview_light_background"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:singleLine="true"
        android:ellipsize="end"
        android:layout_gravity="center"
        android:padding="5sp"
        android:textStyle="bold"
        android:textColor="@android:color/black"
        android:text="@string/empty"/>

    <TextView
        android:id="@+id/location_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:ellipsize="end"
        android:layout_gravity="center"
        android:padding="5sp"
        android:textColor="@color/dark_grey"
        android:layout_below="@id/step_title_text"
        android:text="@string/empty"/>

    <ImageView
        android:id="@+id/status_image"
        android:layout_width="26dp"
        android:layout_height="26dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"/>
    <Button
        android:id="@+id/undo_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/undo"
        android:textAllCaps="true"
        android:visibility="gone"
        android:textColor="@android:color/white"
        android:layout_gravity="end|center_vertical"
        android:layout_alignParentRight="true"
        style="@style/Base.Widget.AppCompat.Button.Borderless"
        />

</RelativeLayout>
</android.support.v7.widget.CardView>

我的问题是,当调用onSwiped方法时,在我通过Java代码设置按钮的可见性之后,主卡不显示按钮。

非常感谢你们

0 个答案:

没有答案