添加视图的最佳方法是什么?动态地还是通过XML?

时间:2015-09-01 13:54:09

标签: android android-layout

我的布局中可以有多个视图(确切的数字是动态决定的。)例如我有一个布局,其中应包含 5个视图在一个条件和其他条件下它应该包含 4 ,而在另一个条件下它可能包含 3 等,我知道有两种方法可以做到这一点。我在下面列出了两个,但我不确定哪个是一个好习惯。

途径

1:使用循环将视图动态添加到布局中。

2:在布局中添加所有可能的视图,并根据条件使它们 INVISIBLE,GONE,VISIBLE,

哪种方法比另一种更好,上述方法之间是否有任何性能差异?

3 个答案:

答案 0 :(得分:0)

根据情况需要这样做。 如果您不知道,在运行时需要多少视图。然后动态是最好的。 如果你有有限数量的视图使用xml进行该工作。 两者都是一样的,但根据情况才有意义。

在你的情况下,动态视图是最好的。

  1. 获取您需要创建的观看次数。
  2. 循环并获取您想要动态创建的类型。
  3. 创建并添加到父版面。
  4. 我认为你需要这种场景

    for(List num: list){
              if(num.gettype().equalsIgnoreCase("B")){ 
                     // add view
                 }else if(num.gettype().equalsIgnoreCase("A")){ 
                     // add view
                 }else if(num.gettype().equalsIgnoreCase("E")){ 
                     // add view
                 }else ...
    }
    

    类似

答案 1 :(得分:0)

我不知道,这更像是一个设计层面的问题。

如果您的设计遵循MVC模式,则视图必须表示模型中维护的某些对象。请考虑这些视图的支持对象(模型对象),并根据实际用例决定。

现在,来看看你的方法:

动态地向布局添加视图很好。如果您的用例需要经常添加和删除它们,您需要小心地从布局中删除每个视图 - 只是因为您无法将子视图添加到父级两次。

我不建议使用可见性属性管理视图。只要您添加更多视图,并且只要您的用例发生变化,您手动跟踪所有视图状态的逻辑就会很复杂。

再说一次,我想说,考虑让你的设计首先遵循一些常见的模式,如MVC - 这将大大简化你的实现,你可以避免许多常见的陷阱。 (例如,手机方向更改,您的活动重新开始等等)

答案 2 :(得分:0)

你的问题有点模糊! 你指的是编程工作的效率吗? 如果是,那么您可以根据视图数量选择任何方法。如果在运行时期间视图数发生更改,则动态添加视图会很好。但是,如果它是静态的,那么你应该更喜欢通过xml添加它们。 此外,如果您知道最大视图数,那么您可以在xml中简单地将它们全部放在运行时,只需将可见性设置为Gone(如果您不想显示空格)或Invisible(如果要显示空白)空间)。

或许你指的是表演!是吗?如果你详细解释这个问题会很棒。