[英]LinearLayoutManager is not work in RecycleView in Android (Xamarin)
I am creating customAdapter for my RecyclerView
for the purpose of Loading More data after the Scroll. 我正在为RecyclerView
创建customAdapter,以在Scroll之后加载更多数据。 So I have to AddScrollListner
on RecycleView
. 所以我必须在AddScrollListner
上添加RecycleView
。 But in my public Constructor it not found. 但是在我的公共构造函数中找不到。
Android code : Android代码:
public UserAdapter() {
final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager();
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = linearLayoutManager.getItemCount();
lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
if (!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
}
isLoading = true;
}
}
});
}
But When I translate the LinearLayoutManager
is not work in Xamarin. 但是,当我翻译时, LinearLayoutManager
在Xamarin中不起作用。
Xamarin Code : Xamarin代码:
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager();
in the upper code my RecycleView
not found. 在上面的代码中找不到我的RecycleView
。
UpDate : 更新日期:
I have set this way 我已经设定好了
mRecyclerView. = FindViewById<RecyclerView>(Resource.Id.inventory_recycleView);
var manager = new LinearLayoutManager(this);
mRecyclerView. SetLayoutManager(manager);
mInventoryAdapter = new InventoryAdapter();
this.mRecyclerView.SetAdapter(mInventoryAdapter);
but then Also my Adapter class that can not use. 但是后来我的Adapter类也无法使用。
class InventoryAdapter : RecyclerView.Adapter
{
private const int VIEW_TYPE_ITEM = 0;
private const int VIEW_TYPE_LOADING = 1;
private OnLoadMoreListener mOnLoadMoreListener;
private bool isLoading;
private int visibleThresold = 5;
private int lastVisibleItem, totalItemCount;
public override int ItemCount
{
get
{
throw new NotImplementedException();
}
}
public InventoryAdapter()
{
var layoutmanger = (LinearLayoutManager) mRecyclerView..GetLayoutManager();
}
}
Any Help be Appreciated. 任何帮助将不胜感激。
getLayoutManger()
, since it is a method with no arguments is converted into a property LayoutManager
on the RecyclerView
. getLayoutManger()
,因为它是不带参数的方法,所以将其转换为RecyclerView
上的属性LayoutManager
。
So the code will look like: 因此代码如下所示:
var layoutManager = (LinearLayoutManager)mRecyclerView.LayoutManager;
Usually you would set the LayoutManager in your Activity or Fragment like: 通常,您可以在Activity或Fragment中设置LayoutManager,例如:
var manager = new LinearLayoutManager(Activity); // or just this if inside Activity
mRecyclerview.SetLayoutManager(manager);
It is unclear how you pass in your RecyclerView
to the Adapter. 目前尚不清楚如何将RecyclerView
传递给适配器。 It appears as if mRecyclerView
is a field somewhere. 看起来mRecyclerView
是某个地方的字段。 Normally I would pass it in as an agument in the constructor if I need it in that class: 通常,如果需要在该类中将其作为构造函数中的参数传递,则可以:
public MyAdapter(RecyclerView recycler)
{
mRecyclerView = recycler;
// do more stuff here...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.