【问题标题】:Android TableLayout dynamic or fixed sizeAndroid TableLayout 动态或固定大小
【发布时间】:2016-11-10 03:36:36
【问题描述】:

我是一名 Android 新手,我想知道如何处理我想要显示的大桌子。

目前我正在测试一个 TableLayout100 TableRows。决赛桌将有更多的行,按 数千 的顺序。
由于 TableLayout 是一个 View,我想知道在这种情况下什么是正确的或推荐的方法。使用包含我拥有的所有数据的视图 (TableLayout),或在用户上下滚动时在可视窗口中动态添加/删除行。

不同方法的优缺点是什么?例子?

【问题讨论】:

    标签: android size android-tablelayout


    【解决方案1】:

    同时将它们全部显示在屏幕上的最明显缺点是操作系统本质上必须同时将所有数千个 View 对象放在内存中 - 非常昂贵,内存 -明智的。

    另一方面,在滚动时创建和销毁视图是处理器密集型的,并且会大大降低 UI 的速度。

    主要的替代方案(以及 android 在其ListView 控件中使用的那个(顺便说一下,这可能是您应该使用的),是只创建足够的视图来填充屏幕(加上一点填充任何一侧),当一个人离开顶部时,在底部重新使用它,改变它的属性而不是创建一个全新的视图。

    以上是复杂的逻辑,为什么要重新发明轮子? List View controlcustom adapter 应该能够像您尝试做的那样呈现数据,并且已经完成了艰苦的工作。

    【讨论】:

    • 我同意。我不想重新发明轮子。你知道我在哪里可以看到这种技术的一些代码示例吗?
    • 这个比较彻底......应该让Hulu指向正确的方向。 mkyong.com/android/android-listview-example
    • 非常感谢。最后一个细节:看到您发送的示例中的 XML,我想知道 ListView 元素是否可以有任意数量的子元素?如果我放了 10 个 TextView,我可以遍历它们并使它们可见/不可见吗?
    • @ilomambo 列表视图中的项目可以有任意数量的子项,您想处理多少子项都可以 - 将它们设置为可见/不可见将是适配器在 getView() 方法中的工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2011-04-19
    相关资源
    最近更新 更多