【问题标题】:iOS collectionview reloaddata invalidatelayoutiOS collectionview reloaddata invalidatelayout
【发布时间】:2017-06-23 22:34:09
【问题描述】:

我的 collectionView 有问题。这是我想做的,也是我目前拥有的:

  • 1 个集合视图
  • 1 个数据源
  • 2 布局
  • 2 个原型细胞

我有 2 个按钮可以在布局和原型单元格之间切换

谁能告诉我多少次何时我必须使用这些方法(构造函数?点击按钮时的方法?subviewLayout 方法?)

collectionViewTransactions.CollectionViewLayout = new CollectionViewLayoutGrid();

collectionViewTransactions.CollectionViewLayout = new CollectionViewLayoutList();

collectionViewTransactions.Source = new TransactionCollectionViewSource();

collectionViewTransactions.ReloadData();

collectionViewTransactions.CollectionViewLayout.InvalidateLayout();

因为我有 9 个项目,第一次只显示 4 个(出现在屏幕上),如何还显示所有 9 个而不是只显示在屏幕上?

谁能帮帮我,非常感谢!

【问题讨论】:

  • 第二行覆盖第一行:用列表替换网格。是不是打错字了?
  • 这不是我的最终代码。这只是行,我只想知道我必须在哪里使用它们,因为当我第一次切换布局时,它可以工作,但第二次没有,我得到的印象是,单元格被其他人替换

标签: ios xamarin layout collectionview


【解决方案1】:

注意不要将布局对象的 invalidateLayout 方法与集合视图的 reloadData 方法混淆。调用 invalidateLayout 方法不一定会导致集合视图丢弃其现有的单元格和子视图。相反,它强制布局对象在移动和添加或删除项目时根据需要重新计算其所有布局属性。如果数据源中的数据发生了变化,reloadData 方法是合适的。无论您如何启动布局更新,实际的布局过程都是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多