我似乎在理解weightSum和LayoutWidth时遇到了问题。我的代码如下:
<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="3">
<LinearLayout
android:background="#cccccc"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:padding="20sp"
android:textSize="30sp"
android:gravity="center_horizontal"
android:text="Cheapest Fare Option"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:background="#666666"
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
</LinearLayout>
我对此的理解是第一个布局占据空间的1/3,第二个布局占用空间的2/3,但反过来发生,即第一个布局占2/3,第二个布局是拿1/3
为什么会这样?努力理解这一点。
答案 0 :(得分:0)
<LinearLayout
android:background="#cccccc"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:padding="20sp"
android:textSize="30sp"
android:gravity="center_horizontal"
android:text="Cheapest Fare Option"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:background="#666666"
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="0dp">
</LinearLayout>
答案 1 :(得分:0)
根据您的android:orientation="vertical"
,您希望垂直获得此比率,因此android:layout_height
属性对于孩子LinearLayout
应为0dp。
设置 -
android:layout_height="0dp"
表示内部LinearLayout
。
或者,如果您想要水平获得比率,请使用android:orientation="horizontal"
set -
android:layout_width="0dp"
表示内部LinearLayout
。
事情是,当你想要达到比率时,你不要设置特定的尺寸(宽度或高度)以匹配父母。而是将其设置为0dp,以便Android可以自动为您处理它。