如果ImageView包含在不覆盖整个屏幕的ViewPager的片段中,是否可以使ImageView覆盖整个屏幕?

时间:2020-04-07 13:54:24

标签: android android-layout android-fragments android-viewpager android-constraintlayout

我正在ViewPager的活动布局中使用ConstraintLayout。该ViewPager受约束以便显示在同级窗口小部件下方。因此,ViewPager不会覆盖整个屏幕。

但是,在此ViewPager的片段中,必须显示ImageView来覆盖整个屏幕。该ImageView的每个ViewPager片段都是唯一的(意味着每个ImageView实际上必须包含在每个ViewPager的片段中)。

问题是:由于此ImageView位于ViewPager的片段中,无法覆盖整个屏幕,因此对于此{{ 1}},因为它将与match_parent相匹配,显然ImageView不会覆盖所有屏幕(因为它显示在同级小部件下方)。

如何使ViewPager充满整个屏幕?

2 个答案:

答案 0 :(得分:1)

当在视图分页器中显示imageView片段时,可以以编程方式更改约束。这里有一个简单的例子

ConstraintLayout: change constraints programmatically

答案 1 :(得分:1)

fragment.xml

<androidx.constraintlayout.widget.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">

        <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/viewPagerImage"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

viewpger_item.xml

<androidx.constraintlayout.widget.ConstraintLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/imgPool"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:scaleType="fitXY"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>