在imageview下方显示textview,而不是在父级底部

时间:2017-07-04 14:52:56

标签: android android-layout android-imageview textview android-relativelayout

我正在处理Android应用程序,但我遇到了如何在视图中显示图像的问题。我的问题是我想在我的imageView下面显示一个图像和两个textView,而不是将它们的底部与父对齐。请参阅下面的线框。

我的问题是,当imageView占据relativeLayout的所有高度时,我的textViews隐藏在父视图下面。

我尝试了很多东西,但没有什么是令人满意的...... 我试图将我的imageview放在linearLayout中并对其加权但是如果我的imageView较小,我在imageView和textView之间有一个空白。

它很复杂,因为我加载的每个图像都可以有不同的大小,因此我无法修复它的默认大小。 另外,我的布局是在viewPager中,当我想在我的适配器上实例化它时,我想获得视图的高度,它返回0.所以我无法计算视图中元素的大小。

您知道如何制作我的布局吗?

也许在一个CoordinatorLayout中有循环依赖(但我不知道如何制作它)?

这是我想用我的观点做的线框:image

这里是我的布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/layout_photo_detail"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/relative_photo_detail_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/relative_photo_detail_bottom_infos">

        <ImageView
            android:id="@+id/photo_detail_full_size"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            android:src="@drawable/placeholder"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true"/>

        <TextView
            android:id="@+id/photo_detail_owner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/photo_detail_full_size"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dp"
            android:textColor="@color/grey"/>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relative_photo_detail_bottom_infos"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/relative_photo_detail_image"
        android:padding="10dp">

        <ImageView
            android:id="@+id/photo_detail_delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:src="@drawable/delete"/>
    </RelativeLayout>
</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

尝试将您的代码放在滚动视图

答案 1 :(得分:0)

像这样的东西

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_gravity="center_horizontal" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Large Text"
    android:id="@+id/textView2"
    android:textAlignment="center" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Large Text"
    android:id="@+id/textView3"
    android:textAlignment="center" />

</LinearLayout>

答案 2 :(得分:0)

更新您的布局结构,如下所示:

.container {
  background: url(http://via.placeholder.com/350x300) no-repeat center center orange;
  background-size: contain;
  animation-duration: 3s;
  animation-name: changewidth;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

@keyframes changewidth {
  from {
    width: 100px;
    height: 300px
  }
  to {
    width: 300px;
    height: 100px
  }
}

<强>输出:

enter image description here

希望这会有所帮助〜