Cardslib卡的LinearLayout wrap_content

时间:2014-07-20 06:02:14

标签: android android-layout android-linearlayout

使用https://github.com/gabrielemariotti/cardslib,我想要一个如下所示的布局:

----------- (this card has dynamic text 
|this is  |  and its height should adjust
|a card   |  to the amount of text automatically)
-----------
=========== (separator)
-----------
|this is  |
|a        |
|CardsList|
-----------

这就是我现在所拥有的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/wrapper">

        <it.gmariotti.cardslib.library.view.CardView
            android:id="@+id/card"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#ddd"
        android:layout_below="@+id/wrapper"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <it.gmariotti.cardslib.library.view.CardListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/match_ongoing_hand"
        android:layout_below="@+id/list" />

</RelativeLayout>

问题是LinearLayout会占用整个屏幕,即使顶部卡片中只有少量文字也是如此。如果我将LinearLayout设置为特定的layout_height,我可以看到CardListView。在CardListView中,卡片自然地包裹在他们的文本中。我希望LinearLayout能够包裹到顶部卡片的高度。我怎样才能做到这一点?感谢。

1 个答案:

答案 0 :(得分:1)

我认为这种布局应该符合您的要求:

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

    <it.gmariotti.cardslib.library.view.CardView
        android:id="@+id/card"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#ddd"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <it.gmariotti.cardslib.library.view.CardListView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/match_ongoing_hand" />

</LinearLayout>

此外,我认为您可以安全地从分隔符layout_alignParentLeft中删除layout_alignParentStartView属性。