当滚动到底部时,ListView自动添加更多内容

希里希什·加鲁德

我已经ListView在我的xaml页面中创建了,并且正在从其cs页面上添加网格和按钮。当我在手机上运行此listview代码时,当我将其滚动到底部时,后面的代码将再次自动运行,并再次添加相同的代码listview我希望此DataTemplate代码仅运行一个,当我滚动到底部时,listview它不应再次执行。不知道为什么它再次执行。

背后的代码

    public List<AmanoraSlotsClass> AmanoraSlotsClassesList { get; set; }
    public List<HadapsarSlots> HadapsarSlotClassesList { get; set; }
    

    string SelectedLocation = null;
    string SelectedDate = null;
    Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();

    int OuterI = 0;
    int innerJ = 0;
    
    public ShowSlotsPage(string _Location, string _Date)
    {
        this.SelectedLocation = _Location;
        this.SelectedDate = _Date;
        
        SelectedDate = SelectedDate.Replace('/', '-');

        if (SelectedLocation == "Amanora Town Park")
        {
            AmanoraSlotsClassesList = new List<AmanoraSlotsClass>();
        }
        else if (SelectedLocation == "Hadapsar Malwadi")
        {
            HadapsarSlotClassesList = new List<HadapsarSlots>();
        }
        else
        {
            return;
        }

        FetchData(SelectedLocation, SelectedDate);

        InitializeComponent();
        BindingContext = this;


       //When i reach bottom of my listview this the control jumps to this and again adds same   elements.
        DataTemplate _dataTemplate = new DataTemplate(() =>
        {
           
            Grid _grid = new Grid();
            _grid.RowSpacing = 50;
            _grid.RowDefinitions.Add(new RowDefinition());
            _grid.ColumnDefinitions.Add(new ColumnDefinition());
            
            _grid.ColumnSpacing = 25;

            if (SelectedLocation == "Amanora Town Park")
            {
                OuterI = AmanoraSlotsClassesList[0].GetType().GetProperties().Count();
            }

            for (int i = 0; i < OuterI - 1; i++)
            {
                if (SelectedLocation == "Amanora Town Park")
                {
                    innerJ = AmanoraSlotsClassesList.Count();
                }
                for (int j = 0; j < innerJ; j++)
                {
                    Button _but = new Button();
                    _but.FontSize = 10;
                    _but.Scale = 1;
                    _but.HeightRequest = 70;
                    if (SelectedLocation == "Amanora Town Park")
                    {
                        _but.Text = AmanoraSlotsClassesList[j].S1;
                    }
                    keyValuePairs.Add(_but.Id.ToString(), $"S{i + 1}");

        //          ColorDtermination(_but);    //Changes color of button

                    Grid.SetRow(_but, j);
                    Grid.SetColumn(_but, i);
                    _grid.Children.Add(_but);
                }
            }

           var viewCell_ = new ViewCell
           {
                View = _grid
           };
            return viewCell_;

        });   ///*Till here code runs again when i scroll bottom of listview.*

         _listView.ItemTemplate = _dataTemplate;
        if(SelectedLocation == "Amanora Town Park")
        {
            _listView.ItemsSource = AmanoraSlotsClassesList;
        }
    }
  1. XAML声明列表视图-列表视图的XAML declarion

  2. CS页面代码截图**

阿列克谢·斯特拉赫(Alexey Strakh)

Xamarin.Forms ListView呈现AmanoraSlotsClassesList集合中每个项目的项目模板如果该应用呈现了其他项,则意味着您的收藏集中有那么多项。如果您希望列表仅渲染模板一次,请确保列表具有单个元素。

一些建议:

  1. 切换到CollectionView(更新和更好),而不是ListView
  2. 将项目模板移至Xaml并根据集合元素类型使用模板选择器

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将ListView滚动到底部?

来自分类Dev

UITableView滚动到底部

来自分类Dev

Textarea自动滚动到底部

来自分类Dev

通过CSS滚动到底部时如何隐藏DIV?

来自分类Dev

使用Javascript滚动到底部时如何追加更多行

来自分类Dev

内容更新后,jScrollPane不会滚动到底部

来自分类Dev

ng-repeat渲染并自动滚动到底部

来自分类Dev

页面加载时自动滚动到底部

来自分类Dev

UITextView中的文本自动滚动到底部

来自分类Dev

滚动滚动到底部,但内容保持在顶部

来自分类Dev

发送新消息时向下滚动到底部

来自分类Dev

自动滚动到底部

来自分类Dev

ListView自动滚动仅在手动滚动到底部一次时有效

来自分类Dev

如何制作圆形页面?(当滚动到页面内容的末尾时,页面会将内容的开头添加到底部,依此类推)

来自分类Dev

使div自动滚动到底部(反应)

来自分类Dev

Tkinter:用户不滚动时自动滚动到底部

来自分类Dev

div溢出滚动:当滚动到底部时,内容开始滚动

来自分类Dev

如何将ListView滚动到底部?

来自分类Dev

我将如何使div自动滚动到底部?

来自分类Dev

ListView:如何始终滚动到底部

来自分类Dev

自动滚动到底部页面-速度控制

来自分类Dev

将ListView设置为在应用启动时滚动到底部吗?(安卓)

来自分类Dev

使用香草Javascript / CSS自动滚动到底部-Polymer

来自分类Dev

使用 GET 变量从数据库滚动到底部时加载更多 - PHP/Mysqli

来自分类Dev

添加文本后将 NSTextView 滚动到底部

来自分类Dev

使用 Retrofit 滚动到 RecyclerView 底部时添加更多项目

来自分类Dev

如何在离子内容中滚动到底部

来自分类Dev

滚动到底部 webview 时的功能

来自分类Dev

UITableView 如何保持滚动到底部[自动滚动]?

Related 相关文章

  1. 1

    如何将ListView滚动到底部?

  2. 2

    UITableView滚动到底部

  3. 3

    Textarea自动滚动到底部

  4. 4

    通过CSS滚动到底部时如何隐藏DIV?

  5. 5

    使用Javascript滚动到底部时如何追加更多行

  6. 6

    内容更新后,jScrollPane不会滚动到底部

  7. 7

    ng-repeat渲染并自动滚动到底部

  8. 8

    页面加载时自动滚动到底部

  9. 9

    UITextView中的文本自动滚动到底部

  10. 10

    滚动滚动到底部,但内容保持在顶部

  11. 11

    发送新消息时向下滚动到底部

  12. 12

    自动滚动到底部

  13. 13

    ListView自动滚动仅在手动滚动到底部一次时有效

  14. 14

    如何制作圆形页面?(当滚动到页面内容的末尾时,页面会将内容的开头添加到底部,依此类推)

  15. 15

    使div自动滚动到底部(反应)

  16. 16

    Tkinter:用户不滚动时自动滚动到底部

  17. 17

    div溢出滚动:当滚动到底部时,内容开始滚动

  18. 18

    如何将ListView滚动到底部?

  19. 19

    我将如何使div自动滚动到底部?

  20. 20

    ListView:如何始终滚动到底部

  21. 21

    自动滚动到底部页面-速度控制

  22. 22

    将ListView设置为在应用启动时滚动到底部吗?(安卓)

  23. 23

    使用香草Javascript / CSS自动滚动到底部-Polymer

  24. 24

    使用 GET 变量从数据库滚动到底部时加载更多 - PHP/Mysqli

  25. 25

    添加文本后将 NSTextView 滚动到底部

  26. 26

    使用 Retrofit 滚动到 RecyclerView 底部时添加更多项目

  27. 27

    如何在离子内容中滚动到底部

  28. 28

    滚动到底部 webview 时的功能

  29. 29

    UITableView 如何保持滚动到底部[自动滚动]?

热门标签

归档