ImageView с AdjustViewBounds непоследовательно отображается внутри ConstraintLayout на инфляцию - PullRequest
0 голосов
/ 27 сентября 2019

Я использую RecyclerView для отображения сетки изображений.При касании изображения фрагмент диалогового окна надувает увеличенную версию этого изображения с различным соотношением сторон, поэтому я использую AdjustViewBounds.Изображения поступают с URL-адресов из Instagram API.Обработка изображений выполняется с помощью Glide.

Когда я использую другой макет или не макет, я не сталкиваюсь с этой проблемой.Если я использую Glide, чтобы изменить размеры всех изображений, которые отображаются с таким же соотношением сторон, я также не столкнусь с этой проблемой.

Визуальный пример проблемы

Диалоговое окно с раздутым видом.

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

    <data>

        <variable
                name="url"
                type="String" />

        <variable
                name="hashTag"
                type="String" />
    </data>


    <androidx.cardview.widget.CardView
            android:id="@+id/dialog_cardView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:cardBackgroundColor="@color/EERIE_BLACK"
            app:cardCornerRadius="20dp"
            app:cardPreventCornerOverlap="true">

        <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/dialog_image_constraintLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            <ImageView
                    android:id="@+id/dialog_image"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="48dp"
                    android:layout_marginBottom="48dp"
                    android:adjustViewBounds="true"
                    app:imageUrl="@{url}"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    tools:src="@drawable/image_2" />

            <TextView
                    android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="16dp"
                    android:text="#PlaceHolderTag"
                    android:textColor="@color/BABY_POWDER"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    tools:text="#Hashtag" />

        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>
</layout>

1 Ответ

0 голосов
/ 27 сентября 2019

если вы хотите ImageView match_parent или полный, вы можете добавить

android:scaleType="fitXY"
...