将视图拆分为相等的部分

时间:2014-03-27 10:10:57

标签: android android-layout

我试图设计我的布局如下。我目前的方法是让LinearLayout包装另外两个LinearLayouts。其中每个都有layout_weight=1。然后底部布局包装另外两个,每个也有layout_weight=1。我听说不建议使用嵌套砝码 - 不是吗?否则,什么是更好的选择呢?

enter image description here

由于

1 个答案:

答案 0 :(得分:0)

这将是我的方法:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:weightSum="2">

    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">

        <View android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#ff00ff"/>

    </LinearLayout>

    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:weightSum="2"
                  android:orientation="horizontal">

        <View android:layout_width="0dp"
              android:layout_weight="1"
              android:layout_height="match_parent"
              android:background="#ffff00"/>

        <View android:layout_width="0dp"
              android:layout_weight="1"
              android:layout_height="match_parent"
              android:background="#00ffff"/>

    </LinearLayout>

</LinearLayout>

我认为权重可能“低效”,因为为了适当地应用它们,必须首先测量布局。如果它的子节点也应用权重,则可能导致重复测量相同的布局,可能< / em>妨碍表现。

如果您的布局很复杂,您可能需要考虑其他方法(例如创建自定义ViewGroup),但请记住:

  

我们应该忘记效率低,大约97%的时间说:   过早优化是万恶之源。

所以在尝试解决之前请确保您确实遇到了问题。