【问题标题】:Create a periodic table in Android在 Android 中创建元素周期表
【发布时间】:2014-11-22 00:59:51
【问题描述】:

对于我的应用,我需要创建一个periodic table。 一开始,我想做一个表格布局,并用代表 json 文件中每个元素的特定视图动态填充它。但是,我了解到,通常动态视图是在我们不确切知道视图数量时,并且布局会自行适应这个未知数字。

但就我而言,我知道视图的数量以及在哪里显示它们。

那么:你有什么建议?是否可以制作包含大约 100 个元素的布局? 我的问题更多地与android中的最佳实践和优化内存的最佳方法有关。 谢谢

【问题讨论】:

  • 我认为动态布局是个好主意,因为它允许您从 JSON 或任何您想要的格式读取数据,而不是在 XML 布局或资源文件中硬编码。
  • 我的方法是使用嵌套的线性布局来构建所有的行/列。

标签: android dynamic tablelayout


【解决方案1】:

由于元素周期表的元素是已知的,我建议将每一行转换为带有 TextView 的 LinearLayout。对于所有没有元素的地方,将其转换为空间视图或只是一个普通视图。确保将每个 TextView 的宽度设置为 0dp 并为其分配权重;以便它们均匀分布。

结果会是这样的

<LinearLayout orientation=vertical width=match_parent height=match_parent>
    <LinearLayout orientation=horizontal width=match_parent height=wrap_content>
        <TextView width=0dp, height=wrap_content, weight=<> text=Element-Name/>
        <Space width=0dp, height=wrap_content, weight=<>/>
        <TextView width=0dp, height=wrap_content, weight=<> text=Element-Name>
    </LinearLayout>

    .. another linearlayout similar to the above one for each row of the periodic table

</LinearLayout>

另一种方法是创建自定义视图;考虑到包含元素的单行的视图。

如果您想从 json 文件加载内容,另一种方法是考虑 GridView。

【讨论】:

  • 您的答案似乎与clever_trevor 的答案相似。就我而言,我不需要每个元素只需要 1 个文本视图,因此我将制作自​​定义视图。但我不明白的是为什么你把宽度设置为 0dp,为什么它比在一个表格布局中做几个表格行更好?
猜你喜欢
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多