相对布局 - 自动换行

时间:2016-06-02 14:25:23

标签: android android-imageview android-relativelayout android-wrap-content

我有以下代码段:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/collected_item_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/card_text_color"
        android:textSize="@dimen/card_headline_textsize"
        android:layout_marginBottom="@dimen/card_headline_marginBottom"
        android:text="Foo" />

    <ImageView
        android:id="@+id/collected_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxHeight="140dp"
        android:background="@android:color/holo_red_dark"
        android:adjustViewBounds="true"
        android:layout_below="@id/collected_item_title"
        android:layout_marginEnd="8dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@id/collected_item_image"
        android:layout_below="@id/collected_item_title"
        android:text="Foo"
        android:textColor="@color/card_text_color" />

</RelativeLayout>

我喜欢将ImageView放在左侧,将第二个TextView放在此图像的右侧,或者取决于图像的大小。 图像应该增长,直到达到最大高度140dp。

如果图像宽度过宽,如何自动换行文字? 不幸的是,我现在不知道该怎么做。 是的我可以通过编程方式完成,但我只想用xml达到目标。

如果使用其他布局可以实现此行为,则包装RelativeLayout不必是RelativeLayout。

2 个答案:

答案 0 :(得分:2)

听起来你需要FlowLayout。 Android没有提供开箱即用的功能,但请查看此答案。 How can I do something like a FlowLayout in Android?

答案 1 :(得分:0)

感谢chessdork的回答,我找到了google的flexbox布局。 它由以下git存储库提供。 https://github.com/google/flexbox-layout