如何在回收器视图中实现片段事务



我一直在到处寻找,但是当单击回收器视图中的项目时,我找不到如何进行片段交易。所以我在徘徊,如果有人知道如何在 c# 中做到这一点

谢谢

回收器适配器

class FavouritesPageAdapter : RecyclerView.Adapter
{
FavouritesFragment favFragment = new FavouritesFragment();
private List<Favourites> mFavourites;
private RecyclerView mRecyclerView;
public FavouritesPageAdapter(List<Favourites> favourites, RecyclerView recyclerView)
{
mFavourites = favourites;
mRecyclerView = recyclerView;
}
public override int ItemCount
{
get { return mFavourites.Count; }
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
FavouritesViewHolder viewHolder = holder as FavouritesViewHolder;
viewHolder.mCalcLabel.Text = mFavourites[position].CalcName;
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View favouritesCard = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.favourites_cards, parent, false);
TextView calcName = favouritesCard.FindViewById<TextView>(Resource.Id.calculatorLabel);
FavouritesViewHolder view = new FavouritesViewHolder(favouritesCard) { mCalcLabel = calcName };
return view;
}
public class FavouritesViewHolder : RecyclerView.ViewHolder
{
public View mMainView { get; set; }
public TextView mCalcLabel { get; set; }
public FavouritesViewHolder (View view) : base(view)
{
mMainView = view;
}
}
}

如果需要在用户单击项目时打开新recyclerViewfragment,请尝试在OnBindViewHolder重写的方法中执行此操作

public class FavouritesPageAdapter : RecyclerView.Adapter
{
FavouritesFragment favFragment = new FavouritesFragment();
private List<Favourites> mFavourites;
private RecyclerView mRecyclerView;
Activity _activity;
public FavouritesPageAdapter(Activity activity, List<Favourites> favourites, RecyclerView recyclerView)
{
_activity=activity;
mFavourites = favourites;
mRecyclerView = recyclerView;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
FavouritesViewHolder viewHolder = holder as FavouritesViewHolder;
viewHolder.mCalcLabel.Text = mFavourites[position].CalcName;  
var clickedItem = mFavourites[position];
viewHolder.mMainView.click+=delegate
{
var objFrg = new MyFragment();
var fragmentTx =_activity.SupportFragmentManager.BeginTransaction();
fragmentTx.Replace(Resource.Id.crealtabcontent, objFrg, "MyFrgTag").AddToBackStack("myFrgBackStack");
fragmentTx.Commit();            
};
}
}

您的片段应如下所示

public class MyFragment :Android.Support.V4.App.Fragment
{
}

要获得点击的项目,请使用positionOnBindViewHolder方法。_activity是像这样调用适配器时必须传递的活动

var fvrtAdapter = new FavouritesPageAdapter(this.Activity,favourites,recyclerView);

最新更新