根据我对布局管理器的模糊理解,我认为在布局中嵌套布局的效率很低( android也是这样吗?)
我正在尝试做这个布局,但不得不下一个布局。有没有更好的布局管理器可以让我不用嵌套?所有组件目前都是片段,因此需要对片段进行布局,而不是单独的组件。

谢谢
发布于 2014-07-29 06:03:53
我不相信在没有嵌套布局的情况下,有一种方法可以获得这种外观。如果是这样的话,这是因为你正在做很多可能不必要的图形(不知道你的其他需求)。我所说的“大量图形”指的是来自你的图像,如果你想在每个框中有动态的内容,那么你必须使用嵌套布局,除非你有一个布局,然后重新绘制屏幕的中心部分,以提供嵌套布局的效果。
除非你有性能问题,否则你不需要担心布局数量较少(即少于100个左右)的效率。我有几个应用程序,有几层嵌套布局(最多10层嵌套),在性能上没有可测量的差异。
如果您有一个包含数百个子元素的ScrollView或ListView,那么您可能会关心嵌套布局。我使用过其中的几个,它可以产生不同的效果。例如,我有一个包含大约5,000个项目的ListView,每个项目都有大约5个布局。当我把它降到3的时候,我注意到了后端的不同。这两种方法对用户来说都不明显。(不,我不能有效地回收视图容器,因为每个项目实际上都需要它自己的布局-部分回收是可能的。)
发布于 2014-07-29 07:53:45
虽然它的设置有点复杂,但您可以使用GridLayout来实现。假设俯视图和底视图具有固定的高度,则如下所示:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="120dp"
android:layout_row="0"
android:layout_column="0"
android:layout_columnSpan="2"
android:background="#ffff070c"
android:layout_gravity="top"></FrameLayout>
<FrameLayout
android:layout_width="200dp"
android:layout_row="1"
android:layout_column="0"
android:background="#ff12ff1a"
android:layout_rowSpan="2"
android:layout_gravity="fill_vertical"></FrameLayout>
<FrameLayout
android:layout_height="64dp"
android:layout_row="1"
android:layout_column="1"
android:background="#ff0906ff"
android:layout_gravity="fill_horizontal"></FrameLayout>
<FrameLayout
android:layout_row="2"
android:layout_column="1"
android:background="#ff737373"
android:layout_gravity="fill"></FrameLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_row="3"
android:layout_column="0"
android:layout_columnSpan="2"
android:background="#ffbebebe"></FrameLayout>
</GridLayout>这会产生这样的结果:

https://stackoverflow.com/questions/25004977
复制相似问题