在ConstraintLayout中使用Relativelayout

时间:2017-10-08 10:22:32

标签: android android-layout android-constraintlayout android-relativelayout

我知道ConstraintLayout可以提供比RelativeLayout更灵活的视图。 使用ConstraintSet可以使ConstraintLayout的子视图转换。

在我的情况下,RelativeLayout中使用ConstraintLayout是否正确?

我想点击RelativeLayout(ViewGroup)进入另一项活动。 我尝试使用barriergroup使用ConstraintLayout 1.1.0 beta 2,但这些不能用于视图组点击事件。

enter image description here

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- other views-->

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/guideline"
        app:layout_constraintGuide_begin="400dp"
        android:orientation="horizontal" />

    <!-- Bottom view-->
    <RelativeLayout
        android:id="@+id/relative_layout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/guideline">

        <ImageView
            android:id="@+id/image_view"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_alignParentLeft="true"
            />

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Title"
            android:layout_toRightOf="@+id/image_view"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Brief"
            android:layout_toRightOf="@+id/image_view"
            android:layout_below="@+id/title"/>

    </RelativeLayout>

</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:1)

如果您想使用constraintlayout并同时使用类似卡片的UI。您应该将约束布局封装在cardview内。实现cardview onClick()并在contraintlayout内部相应地对齐视图:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns: android="http://schemas.android.com/apk/res/android">

     <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- Your views aligned below -->
     </android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>