0

我已经定义了一个 XML 来显示一个小弹出窗口:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scroller"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dip"
    android:background="@drawable/marker_popup_border"
    android:clickable="true"
    android:fadingEdgeLength="5dip"
    android:scrollbars="none" >

    <LinearLayout
        android:id="@+id/tracks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal|center_vertical"
        android:orientation="horizontal"
        android:padding="10dip" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingRight="10dp" >

            <TextView
                android:id="@+id/popUpName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView
                    android:id="@+id/popUpState"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawablePadding="5dp" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@color/graylightmore" >
        </LinearLayout>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:contentDescription="@string/info"
            android:paddingLeft="5dp"
            android:src="@drawable/info" />

    </LinearLayout>
</ScrollView>

<ImageView
    android:id="@+id/arrow_down"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="-4dip"
    android:contentDescription="@string/empty"
    android:src="@drawable/arrow_down_black" />

当两个 Textview 之一需要大量空间时,信息图像会被压缩……您可以在链接上看到结果。我需要一个提示,以便始终显示 i 并且如果需要,将 textviews 分为 2 行。

4

1 回答 1

0

尝试给 layout_weight 属性如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scroller"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dip"
    android:background="@drawable/marker_popup_border"
    android:clickable="true"
    android:fadingEdgeLength="5dip"
    android:scrollbars="none" >

    <LinearLayout
        android:id="@+id/tracks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal|center_vertical"
        android:orientation="horizontal"
        android:padding="10dip" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingRight="10dp" 
            android:layout_weight="2">

            <TextView
                android:id="@+id/popUpName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView
                    android:id="@+id/popUpState"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawablePadding="5dp" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@color/graylightmore" 
            >
        </LinearLayout>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:contentDescription="@string/info"
            android:paddingLeft="5dp"
            android:src="@drawable/info" 
            android:layout_weight="1"/>

    </LinearLayout>
</ScrollView>

<ImageView
    android:id="@+id/arrow_down"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="-4dip"
    android:contentDescription="@string/empty"
    android:src="@drawable/arrow_down_black" />
于 2012-12-05T08:36:07.553 回答