1

我有一个在 2 个视图之间翻转的 ViewFlipper,一个视图是 ImageView,一个是 TextView。
图像和文本的大小取决于我从服务器检索到的内容。

我希望 TextView 始终具有与 ImageView 相同的高度尺寸,以便在翻转 ImageView 时 TextView 布局的大小不会改变,即使与 TextView 关联的文本很少;如果有很多文本,如果 TextView 的高度超过 ImageView,我想做一个 ellipsize="end"。

下面是我在布局中使用的代码:

<ViewFlipper
    android:id="@+id/flipperZoneMediumLeft"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/imgZonePic"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/stock_service1"
        android:background="@android:color/black"
        android:scaleType="center" />

    <TextView
        android:id="@+id/txtZoneNameFlipperLeft"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:gravity="center"
        android:text="This is a description"
        android:background="@android:color/black"
        android:textColor="@android:color/white" />
</ViewFlipper>

我觉得这个问题有一个简单的解决方案,但我在这种方式上挣扎太久了。任何帮助解决我的问题将不胜感激。

4

1 回答 1

0

ImageView将and包裹TextView在 a 中LinearLayout,这样您就可以对它们施加权重。将它们的高度设置为 0dp 并给它们每个 layout_weight 1。这样它们将始终具有相同的高度。像这样:

<ViewFlipper
    android:id="@+id/flipperZoneMediumLeft"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >

            <ImageView
                android:id="@+id/imgZonePic"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@android:color/black"
                android:scaleType="center"
                android:src="@drawable/stock_service1" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/txtZoneNameFlipperLeft"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@android:color/black"
                android:ellipsize="end"
                android:gravity="center"
                android:text="This is a description"
                android:textColor="@android:color/white" />
        </LinearLayout>
    </LinearLayout>

</ViewFlipper>
于 2012-11-07T21:33:36.073 回答