在ViewFlipper中对齐视图



我有一个视图流式的viveflipper,可以在2个视图之间翻转,一个视图是一个imageView,一个是文本视图。
图像和文本的大小取决于我从服务器中检索的内容。

我希望TextView始终具有与ImageView相同的高度维度,以便将imageView翻转时,即使与TextView相关的文本很少,文本视图布局的大小也不会更改;如果有很多文字,我想做一个椭圆机="结束"。如果文本视图的高度超过imageView。

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

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

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

ImageViewTextView包装在LinearLayout中,因此您可以将权重给它们。将它们的两个高度设置为0dp,并给它们每个layout_weights1。这样,它们将始终具有相同的高度。这样:

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

最新更新