动态VS在Android的XML布局?(Dynamic vs XML layout in Andro

2019-06-27 01:25发布

我是新来的Android开发,并开始创建自己的UI。 我看到,你可以创建动态像这样( 动态布局 ):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ScrollView sv = new ScrollView(this);
    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    sv.addView(ll);
    TextView tv = new TextView(this);
    tv.setText("Name");
    ll.addView(tv);
    EditText et = new EditText(this);
    ll.addView(et);
    Button b = new Button(this);
    b.setText("Ok");
    ll.addView(b);
}

但我也看到,NetBeans已经有文件资源- >布局- > main.xml中 。 所以,你可以创建用户界面(一个XML布局声明XML布局 ):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Hello World, AndroidTest"
    />
</LinearLayout>

所以我的问题是我应该使用? 什么建议,什么是动态VS在Android开发XML布局的优点/缺点?

Answer 1:

使用XML布局资源文件。

首先,资源集(例如, res/layout-land/res/layout/ )允许你定义在不同的环境下使用的用户界面多,并根据需要,系统会自动选择合适的一个。 Java中的等价物将是一个讨厌的一套ifswitch语句。

其次,有一些工具,可以帮助您成功创建这些布局资源。 即使Eclipse中的拖放和拖放GUI构建是不是你的那杯茶(例如,你使用NetBeans),皮棉将有助于在你的布局指出的缺陷,为此它会指出,只有在一个子集相当于Java代码。

第三,它更趋于简洁,所以如果你手动输入这个东西,这个XML会打字少。

四,所有的示例代码,你会发现将使用布局XML文件约98%,而所有UI答案您发现这里在计算器上(和其他支持资源)的大约98%的会假设你使用的布局XML文件。 虽然你可以自由地避免XML - 也许你被尖括号作为一个年轻的孩子什么的攻击 - 你会逆流而战相比,现在大多数Android开发办的电流。



Answer 2:

我会建议使用XML布局,为您的项目的大部分地区。 你可以把不同的文件夹,如布局:

布局土地 - >景观

布局端口 - >人像

布局-V15 - >的Android版本> = 15

布局sw600dp - >为具有一定宽度帘

使用这些资源的分类,你可以快速地在你的布局,各种支持广泛的Android设备,而不需要编写大量的额外费用。

在我的oppinion,这是使用XML资源VS动态创建所有布局的最大优势。 欲了解更多信息请参阅有关资源此链接



Answer 3:

基于XML的布局取决于铸造的,因为你必须使用:

 Button myButton = (Button) findViewById(R.id.my_button);

所以你有一个铸造,耗时XML搜索。 当您使用动态创建UI的是更加难以管理。 你必须安排一切,但你并不需要强制转换为多。

我更喜欢第三种解决方案- RoboGuice它使用依赖注入模式,你不关心铸造,它的速度更快,以创建一个应用程序。 也更加灵活。 想想看,你有一个正常的文本字段。 然后,你想将其更改为文本区域。 在RoboGuice这只是2度的变化(除了使用情况的变化)问题。 它也更快,当您使用上下文(上下文是非常消耗内存的对象,并存储到它的参考是坏的编码符号)。

所以我的建议是:使用XML,因为它的简单管理UI。 使用RoboGuice的代码快。



Answer 4:

好吧,我宣布亩UI的XML(时间99%),becouse更容易为我工作的方式。

这是很好的做法,单独的用户界面和代码逻辑,XML是用于描述UI更容易(可以考虑使用这个老设计师或切换到Eclipse IDE和它的设计师)

此外,一个Android应用程序可以有多个设计(手机和平板电脑),这将是不好受手工代码,在Java中

简单地说,使用XML



Answer 5:

我喜欢XML的大部分事情,因为它可以让你从内容代码中分离,它往往是清洁编辑,特别是当项目变得又大又忘记你写的前一阵子。 使用XML和样式将让你得到一个一致的外观和感觉整个应用程序也是如此。 它也允许布局系统照顾繁重的工作,你会不会有你的活动的情况下的参考意见结束。 (这是坏,当你旋转和你的活动是重建)。 整体而言,这往往是一个更快的选项,如果不是我喜欢你能做到这一点的XML。 大多数的Android archtiecture的/教科书似乎遵循这种设置也是如此。 (见Android开发文档,CommonsWare的马克·墨菲)

动态有上升空间,它能够定制更先进的方式有些事情,可以很容易解决一些布局问题。 有比其他一些上涨空间,但我更喜欢先做好一切XML,如果它不能做到或者是艰难的,然后做在代码。 有些东西可以用XML来实现远高于代码更容易为好。



Answer 6:

它完全是你自己的选择。 您可能会发现大多数的Android开发人员可以使用XML编写他们自己的应用程序的布局,因为这是专门为此设计。 然而,我个人来自游戏开发的背景和并不真正需要Android的提供UI组件,所以当过我使用一个UI控件,我只是在Java代码中它。

我希望这有帮助。



Answer 7:

这是一个相当晚回应,但有人可能会发现它有用。 目前,我正在做一个图书馆 ,让您使用在服务器上宣布动态布局。 你可以在这里找到它: https://github.com/jelic98/dynamico



文章来源: Dynamic vs XML layout in Android?