Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从RecyclerView获取LinearLayoutManager。。?_C#_Android_Xamarin_Android Recyclerview_Linearlayoutmanager - Fatal编程技术网

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));
        }



    }

}