Android LinearLayout动态文字挣扎

时间:2013-09-14 21:46:32

标签: android android-layout android-linearlayout

我希望实现彼此相邻的3个项目

[ICON-and-text-inside] [动态文本] [动态宽度动态列表]

以下是我的来源

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



        <FrameLayout android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center_vertical"
                >

            <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:id="@+id/imageView"
                    android:src="@drawable/bullet_bg_36px"
                    android:scaleType="centerInside"/>

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="10."
                    android:id="@+id/textView"
                    android:layout_gravity="center"
                    android:textColor="#ffffff"
                    android:textStyle="bold"
                    android:textSize="14dp"/>
        </FrameLayout>

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="LongText1 - LongText2 - LongText3 - LongText4"
                android:paddingLeft="10dp"
                android:layout_gravity="center_vertical"
                />
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="6dp"
            android:measureWithLargestChild="false"
            android:layout_weight="1">
        <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="??? reps"

                  android:textColor="#c2df00"
                  android:background="#000000"
                  android:paddingEnd="2dp"
                  android:paddingStart="2dp"
                  android:singleLine="true"
                  android:layout_weight="1"/>
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="with ??? lbs"

                android:textColor="#c2df00"
                android:background="#000000"
                android:paddingEnd="2dp"
                android:paddingStart="2dp"
                android:singleLine="true"
                android:layout_weight="1"/>
            </LinearLayout>
</LinearLayout>

目前的行为类似于以下屏幕截图:

enter image description here

我希望中间[动态文本]仅包装(必要时多行),而第一个(图标+ textinside)和最后一个(列表)完全正确显示。

此外,如果中间文字不够宽,那么我希望列表显示在它之后(如场景#1中所示)。

1 个答案:

答案 0 :(得分:1)

做那样的事。我的示例使用了3个textviews,只需将其替换为您的控件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="0dp"
    tools:context=".SearchResultActivity" >

    <TextView 
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="aaa"/>

     <TextView 
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/text1"
        android:layout_toLeftOf="@+id/text3"
        android:text="bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb bbbbbb"/>

    <TextView 
        android:id="@id/text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="ccc"/>

</RelativeLayout>