在加权布局内未正确计算视图高度

时间:2014-07-08 14:16:12

标签: android android-layout textview

嗨我在尝试在android上实现以下布局时发现了奇怪的行为。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
<LinearLayout 
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="0.25"
    android:orientation="horizontal" >
</LinearLayout>
<LinearLayout 
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="0.75"
    android:orientation="horizontal" >
    <TextView 
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="15dp"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:layout_margin="20dp"
        android:textColor="@android:color/black"
        android:lineSpacingMultiplier="1.1" />
</LinearLayout>

</LinearLayout>

这段布局应该在右边生成一个占据屏幕75%的文本视图。但由于某种原因,Textview的高度计算好像其父级的权重为0.视图中的文本似乎完全包裹,但不是视图本身。

这是正常行为还是如何让textview显示正确的高度?

1 个答案:

答案 0 :(得分:0)

首先请正确缩进代码,以便于阅读。您可以通过按Ctrl + Shift + F

在XML编辑器中自动执行此操作

其次,如果你想让LinearLayouts宽25%,宽75%,但要填满整个屏幕高度,那么你需要

android:layout_height="match_parent"

第三,如果您希望TextView占据屏幕的75%,那么为什么不直接将权重分配给它而不将其包装在另一个LinearLayout中?

最后,使用重量你不需要让孩子的重量加1。

android:layout_weight="1"

android:layout_weight="3"

也没关系。