我不知道你们是否在大多数时间使用这种类型的布局,但它使我发疯。
例如,当我在屏幕中间放置一个按钮,然后在按钮旁边放置一个textview时,IDE会重新对它们进行重新排序,并且textview会放在最上面,按钮放在右边。
在屏幕上使用太多元素时可能会出现问题。
从那时起我使用线性布局,但它也有一些限制。
谢谢,我是刚刚进入android开发(4天开始学习),所以我希望你们可以帮助我。Eclipse相对布局很难工作
回答
相对布局已经证明了我最常用的布局。除了真正可定制的事实(尽管可能不如LinearLayout简单),它也相当“快速”。 “快速”意味着当您使用嵌套的LinearLayouts时会有一定的开销,您可以通过使用RelativeLayout来避免这种开销。具体做法是:
坚持的基本特征是不幸的是没有创建用户界面的最有效的方式 。一个常见的例子是LinearLayout的滥用,这会导致层次结构中的视图数量激增。每个视图 - 或者更糟糕的是,每个布局管理器 - 您将 添加到您的应用程序的代价是:初始化,布局和绘图变得更慢。当您嵌套多个使用权重参数 的LinearLayout时,布局过程可能特别昂贵 需要对子进行两次测量。
以我的经验,你不应该使用eclipse拖拽& drop ui builder。它只会造成混乱和问题。它还不够成熟(即使它在过去几年取得了很大的进展)。
特别是作为初学者,你应该直接使用xml。这会让你更好地理解布局机制。我不知道一个单独的android开发人员,他正在与ide构建者认真合作。
我很少使用RelativeLayout作为活动的主布局。建议使用LinearLayout并设置android:weightSum
,以便您的应用程序可以对屏幕提供更大的支持。正如您所知,运行Android的各种设备具有不同的屏幕尺寸。只有当你想在那个具有固定大小的特定位置放置该视图时才使用RelativeLayout。
请参阅使用LinearLayouts创建有很多元素活动的这个例子中,你refered:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:padding="@dimen/padding_small"
android:weightSum="3"
tools:ignore="HardcodedText" >
<LinearLayout
android:id="@+id/picker_time_hour"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_hour_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/hours"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_hour_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_hour_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_hour_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
<LinearLayout
android:id="@+id/picker_time_minute"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_minute_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/minutes"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_minute_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_minute_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_minute_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
<LinearLayout
android:id="@+id/picker_time_second"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_second_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/seconds"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_second_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_second_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_second_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
</LinearLayout>
,其结果是:
正如你可以看到我的看法是您应该使用LinearLayouts,但read this topic,它也可以帮助您选择。
谢谢,我碰巧听说有拖放用户界面构建器的外部程序,并将结果导出为XML。你知道吗? –
我听说过[Codiqa](http://www.codiqa.com/),但它不是免费的。我通过代码创建布局。我知道在堕落的人们倾向于使用拖放式UI构建器,但是当您有更多的经验时,您将更容易使用代码工作。但是取决于你。 –
- 1. Symfony2 Eclipse插件,很难让它工作?
- 2. ScrollView不工作 - 相对布局
- 3. ScrollView内相对布局不工作...!
- 4. setMargins相对布局不工作在网格布局
- 5. Android:相对布局布局
- 6. 相对布局
- 7. 相对布局
- 8. 相对布局positionnement
- 9. 相对布局Android
- 10. Android相对布局
- 11. Android相对布局
- 12. Android - 相对布局
- 13. 相对布局的小工具错误
- 14. 如何更改eclipse工作区选择对话框的布局?
- 15. 密度相关布局如何工作?
- 16. 困难淡出和隐藏相对布局
- 17. 相对布局误差线性布局
- 18. 相对布局和线性布局
- 19. 相对布局中的表格布局
- 20. 在相对布局中创建布局
- 21. Android布局与相对布局
- 22. 相对布局中的布局权重
- 23. 相对布局的布局参数
- 24. Android相对布局布局问题
- 25. Android相对布局对齐
- 26. 相对布局对齐
- 27. 对齐在相对布局
- 28. 我的相对布局隐藏了另一个相对布局
- 29. 如何在相对布局中动态添加相对布局
- 30. 相对布局 - android - 使相对布局滚动
你是对的,我希望它更多的是一个视觉工作室UI编辑器类型,它是快速,简单和可靠的。 –