无法将RelativeLayout转换为ConstraintLayout

时间:2018-12-27 02:07:53

标签: android android-constraintlayout android-relativelayout

我有以下代码,我想将RelativeLayout转换为ConstraintLayout,并希望它显示完全相同。但是,ViewPager标签不会像预期的那样居中放置。我希望以下代码处于约束布局中,但无法实现。我将layout_above转换为layout_constraintTop_toTopOf之类,但不能使其正常工作。如果您可以分享一些示例或提示,那就太好了!我希望收到您的来信!

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <LinearLayout
                android:id="@+id/header"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true">

                <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"
                        android:scaleType="fitXY"
                        android:src="@drawable/d"
                        app:layout_constraintTop_toTopOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintBottom_toBottomOf="parent"/>

            </androidx.constraintlayout.widget.ConstraintLayout>

            <View android:layout_width="0dp"
                  android:layout_weight="1"
                  android:layout_height="1dp"/>
        </LinearLayout>
        <androidx.viewpager.widget.ViewPager
                android:id="@+id/viewpager"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@id/footer"
                android:layout_below="@id/header"
                android:overScrollMode="never">
        </androidx.viewpager.widget.ViewPager>

        <LinearLayout
                android:id="@+id/footer"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:orientation="vertical">
            <include layout="@layout/pagerlayout"/>

        </LinearLayout>
    </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

如果您只需要一个ConstraintLayout模板,其中的页眉和页脚之间有一个viewpager,那么就可以了:

<?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"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="parent">


    </LinearLayout>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/footer"
        android:layout_below="@id/header"
        android:layout_marginTop="8dp"
        android:overScrollMode="never"
        app:layout_constraintBottom_toTopOf="@+id/footer"
        app:layout_constraintTop_toBottomOf="@+id/header"></androidx.viewpager.widget.ViewPager>

    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent">
        <!-- include layout="@layout/pagerlayout"/ -->

    </LinearLayout>

    </android.support.constraint.ConstraintLayout>

您应该能够从那里开始,实现自己想要的。

如果您提出任何后续问题,这些问题将被忽略,因为您的问题所包含的信息很少,以至于这样做不公平。