我有一个recyclerView
和一些视图
的/卡
(我们现在把它称为视图),它们都包含相同的东西,包括一个用作分隔条的视图
。
我希望能够在视图
中更改当前分隔条的属性。因此,假设我单击写有test3
的卡片,我希望能够设置test2
视图
中的分隔条的属性。
我只需要对上面的视图的viewholder
的引用(或任何其他视图),我单击的视图,仅此而已。我该怎么做呢?
public class StuffManagerAdapter extends RecyclerView.Adapter<StuffManagerAdapter.MyViewHolder> {
private List<StuffManagerClass> stuffList;
private Context context;
private String TAG = "CStA";
DBHandler dbHandler;
ArrayList<String> tagArray = new ArrayList<>();
RecyclerView mRecyclerView;
public StuffManagerAdapter(List<StuffManagerClass> stuffList, Context context) {
this.stuffList = stuffList;
this.context = context;
dbHandler = DBHandler.getInstance(context);
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView DeviceTV, NameTV, TagTV;
private ImageButton editButton, deleteButton;
public ImageView tagWarningImage;
View view, bottomBar ,cover;
public MyViewHolder(final View view) {
super(view);
this.view = view;
DeviceTV = (TextView) view.findViewById(R.id.SMVFDeviceTextView);
// etc., etc.
editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do stuff
}
});
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do stuff
}
});
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_stuffmanagervariablefragment, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
final StuffManagerClass sc = stuffList.get(position);
// Initialize card, set all textviews
holder.DeviceTV.setText(sc.getDevice());
holder.NameTV.setText(sc.getName());
holder.TagTV.setText(sc.getTag());
sc.setPosition(position);
holder.view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// This is where I would like to get a reference to the divider bar on the other view/card
}
});
}
@Override
public int getItemCount() {
return stuffList.size();
}
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- TextViews and stuff -->
<View
android:id="@+id/SMVFDividerBar"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/LL2"
android:layout_centerHorizontal="true"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="@color/colorPrimaryDark">
</RelativeLayout>
</FrameLayout>
不知道为什么我没早点意识到这一点,但它很管用。
首先,创建一个实例变量(如果这不是实例变量,请纠正我)。
public class StuffManagerAdapter extends
RecyclerView.Adapter<StuffManagerAdapter.MyViewHolder> {
RecyclerView mRecyclerView;
然后,在OnCreateViewHolder()
方法中赋值这个变量,如下所示:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.thingy, parent, false);
mRecyclerView = (RecyclerView) parent;
return new MyViewHolder(itemView);
}
mRecyclerView.getChildAt(holder.getAdapterPosition-1);
我有一个带有Title/TextView和ViewPager的ViewWholder的RecolyerView。 可以使用ItemTouchHelper擦除RecyclerView中的项。 但如何仅对ViewWholder的一部分禁用它呢?
我想创建一个recyclerview,当它在列表中看到LIQUID作为pid时,它将使用具有自己布局的ViewWholder2。否则,它将使用具有自己布局的viewholder1。 问题是我创建的recyclerview只显示一个ViewWholder。如果位置0 pid为液体,则viewholder为ViewHolder2,即使对于列表上的后续项,pid不再为液体。简而言之,位置0上的pid值将
问题内容: 如何从该模块中获取对模块的引用?另外,如何获得包含该模块的包装的参考? 问题答案:
我在Scrollview中有Recyclerview 现在,滚动时,layoutStaticContent保持固定在顶部
在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:
当我尝试运行代码时,我得到以下错误: 错误:(48,36)错误:RecyclerViewAdapter中的OnCreateViewWholder(ViewGroup,int)无法重写适配器中的OnCreateViewWholder(ViewGroup,int)返回类型ViewWholder与MenuItemViewWholder不兼容,其中VH是类型变量:VH扩展类Adapter中声明的ViewW