1

你好我试图创建一个行是这样的: enter image description here的Android定制行布局灵活高度

该行应与灵活的高度和长高是字幕文本长。 左边的绿色视图也应该长大以填充行的整个高度。 行高度应仅基于文本(标题+小标题)确定。

这是我创建的布局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

     <View 
      android:id="@+id/is_in_range_view" 
      android:layout_width="15dip" 
      android:layout_height="fill_parent" 
      android:background="#99CC00" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_vertical" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/row_title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dip" 
       android:layout_marginTop="5dip" 
       android:text="@string/title" 
       android:textSize="16sp" /> 

      <TextView 
       android:id="@+id/row_subtitle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dip" 
       android:layout_marginLeft="10dip" 
       android:text="@string/subtitle" 
       android:textSize="12sp" /> 

      <View 
       style="@style/SeparatorLine" 
       android:layout_width="fill_parent" 
       android:layout_height="1dip" 
       android:layout_marginTop="5dip" /> 
     </LinearLayout> 
</LinearLayout> 

不过这是结果我得到:

enter image description here

显然视图的layout_height属性的fill_parent值是有问题的,但是这正是我想要的! 我只想要行高将基于文本,而不是绿色视图。

我该怎么做?

+0

为什么你最外层的LinearLayout?这似乎是多余的,因为它只是另一个LinearLayout。 – Sam

+1

@Sam,你是对的。固定。但它仍然没有解决它 –

回答

1

好的,问题是我把layout_height的错误值放在内部的LinearLayout中,它包含两个TextView's。 它被设置为fill_parent而不是wrap_content

一旦设置为wrap_content everythig很好。

正确的布局代码:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 

<View 
    android:id="@+id/is_in_range_view" 
    android:layout_width="15dip" 
    android:layout_height="fill_parent" 
    android:background="#99CC00" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/row_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dip" 
     android:layout_marginTop="5dip" 
     android:maxLines="1" 
     android:text="@string/title" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/row_subtitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="5dip" 
     android:layout_marginLeft="10dip" 
     android:maxLines="3" 
     android:text="@string/subtitle" 
     android:textSize="12sp" /> 

    <View 
     style="@style/SeparatorLine" 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:layout_marginTop="5dip" /> 
</LinearLayout>