1

我有以下代码片段:

<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。

4

2 回答 2

2

听起来你需要一个FlowLayout. Android 不提供开箱即用的功能,但请查看此答案。 如何在 Android 中执行 FlowLayout 之类的操作?

于 2016-06-02T14:32:13.017 回答
0

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

于 2016-06-03T12:19:12.423 回答