Верхнее выравнивание ImageView и TextView в RelativeLayout - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть изображение логотипа компании в верхней части дисплея, и сразу под ним я хочу TextView для отображения текущего пользователя.Однако он должен отображаться на дисплеях различной ширины, которые всегда являются мобильными телефонами.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <ImageView
        android:id="@+id/imageLogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitStart"
        android:contentDescription="@string/lets_delight_logo"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logo" />

    <TextView
        android:id="@+id/user"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginLeft="35dp"
        android:gravity="left"
        android:text="Not logged on..."
        app:layout_constraintTop_toBottomOf="@+id/imageLogo" />

</android.support.constraint.ConstraintLayout>

Если я установлю layout_height из ImageView на фиксированное значение, тогда я смогу заставить его работать прямо на одном дисплееширина, но не другая ширина.Если я установлю layout_height на wrap_content, тогда изображение будет центрировано по вертикали, а не в верхней части экрана, несмотря на установку layout_constraintTop_toTopOf="parent", если только я не установлю scaleType="fitStart", которая перемещает изображение в верхнюю часть дисплея.

Однако, с scaleType="fitStart" TextView отображается вертикально по центру в промежутке между нижней частью ImageView и нижней частью экрана.Не сразу под ImageView, несмотря на настройку layout_constraintTop_toBottomOf="@+id/imageLogo"

Как заставить ImageView автоматически масштабироваться до высоты изображения при отображении на полной ширине экрана и таким образом, чтобы TextView чтобы найти сразу под?

1 Ответ

0 голосов
/ 24 ноября 2018

Я решил проблему ... ImageView отображалось в виде квадратного изображения, высота и ширина которого были равны ширине дисплея, а TextView под квадратом.

При добавлении этого к ImageView отображается изображение с его собственным соотношением сторон, и все отображается в соответствии с ожиданиями:)

android: AdjustViewBounds = "true"

...