合适的布局

时间:2018-03-17 23:25:13

标签: android android-layout

我试图为我的情况选择合适的布局。它将包含三个元素:图片,文本,按钮。当文本很少时,他的任务是在一行中,如果有大文本,则在两行中。

图片的左侧与父母的左边界相关联。左侧的文本绑定到图片的右边缘,并扩展到父级的右边界。图片相对于文本垂直居中。 RelativeLayout可以应对这些任务。但按钮有一个特殊的行为。

按钮的右侧绑定到父级的右边框。但左侧是触发器:如果它到达文本的右边界,则按钮在文本下方向下,布局现在分为两行(视觉上)。

concept picture

有这样的布局吗?你会选择什么?谢谢你的帮助。

P.S。最近我在ConstraintLayout中发现了Barrier,也许有一个类似的触发器,但是当它们没有足够空间时会推动元素...当前代码id:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <RelativeLayout
        android:id="@+id/relativeLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_centerVertical="true"
            app:srcCompat="#f00"/>

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignStart="@+id/image"
            android:layout_centerVertical="true"
            android:layout_marginStart="48dp"
            android:fontFamily="sans-serif"
            android:text="some very very very very very very very very very very very very very very long text"
            android:textColor="#F00"
            android:textSize="24sp"/>
    </RelativeLayout>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif"
        android:text="Button"
        android:textColor="#000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/relativeLayout"/>
</android.support.constraint.ConstraintLayout>

0 个答案:

没有答案