C# 如何从RecyclerView获取LinearLayoutManager。。?
因此,我像往常一样使用C# 如何从RecyclerView获取LinearLayoutManager。。?,c#,android,xamarin,android-recyclerview,linearlayoutmanager,C#,Android,Xamarin,Android Recyclerview,Linearlayoutmanager,因此,我像往常一样使用LinearLayoutManager 我还想使用无止境滚动ScrollListener,问题是如果我在OnCreate方法中创建变量LinearLayoutManager,如下所示 public override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); mLayoutManager =
LinearLayoutManager
我还想使用无止境滚动ScrollListener
,问题是如果我在OnCreate
方法中创建变量LinearLayoutManager
,如下所示
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
mLayoutManager = new LinearLayoutManager(Context);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View row = inflater.Inflate(Resource.Layout.Fragment3, container, false);
RecyclerView mRecyclerView = row.FindViewById<RecyclerView>(Resource.Id.recyclerView);
mRecyclerView.SetLayoutManager(mLayoutManager);
var scrollListener = new scroll(mLayoutManager);
mRecyclerView.AddOnScrollListener(scrollListener);
mRecyclerView.SetAdapter(mAdapter);
}
}`您可以通过调用
var layoutManager=(LinearLayoutManager)recyclerView.GetLayoutManager()代码>
因此,您可以在ScrollListener
中使用它,而不是传递创建的LinearLayoutManager
:
public class scroll : RecyclerView.OnScrollListener
{
public delegate void DoSomething();
public DoSomething mDoText;
public scroll()
{
}
public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
{
base.OnScrolled(recyclerView, dx, dy);
var visibleItemCount = recyclerView.ChildCount;
var totalItemCount = recyclerView.GetAdapter().ItemCount;
// GET LAYOUT MANAGER
var mLayoutManager = (LinearLayoutManager)recyclerView.GetLayoutManager();
var latVisible = mLayoutManager.FindLastCompletelyVisibleItemPosition();
var pasVisibleItem = mLayoutManager.FindFirstVisibleItemPosition();
if ((visibleItemCount + pasVisibleItem) >= (totalItemCount))
{
mDoText.Invoke();
}
else
{
Console.WriteLine("visibleItemCount + pasVisibleItem = " + (visibleItemCount + pasVisibleItem));
}
}
}
请添加所有片段代码
public class scroll : RecyclerView.OnScrollListener
{
public delegate void DoSomething();
public DoSomething mDoText;
public scroll()
{
}
public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
{
base.OnScrolled(recyclerView, dx, dy);
var visibleItemCount = recyclerView.ChildCount;
var totalItemCount = recyclerView.GetAdapter().ItemCount;
// GET LAYOUT MANAGER
var mLayoutManager = (LinearLayoutManager)recyclerView.GetLayoutManager();
var latVisible = mLayoutManager.FindLastCompletelyVisibleItemPosition();
var pasVisibleItem = mLayoutManager.FindFirstVisibleItemPosition();
if ((visibleItemCount + pasVisibleItem) >= (totalItemCount))
{
mDoText.Invoke();
}
else
{
Console.WriteLine("visibleItemCount + pasVisibleItem = " + (visibleItemCount + pasVisibleItem));
}
}
}