简体   繁体   English

如何使用 ConstraintLayout 获得具有不同单元尺寸的 gridview - 流程

[英]How to get gridview with different cells sizes using ConstraintLayout - flow

I'm trying to get the same grid in the below image using the Flow which is part of ConstrainLayout我正在尝试使用作为 ConstrainLayout 一部分的Flow在下图中获得相同的网格目标视图

My code is as below我的代码如下

<androidx.constraintlayout.helper.widget.Flow
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:constraint_referenced_ids="v1,v2,v3,dummyView,v4,v5"
      app:flow_horizontalGap="10dp"
      app:flow_verticalGap="10dp"
      app:flow_horizontalStyle="spread_inside"
      app:flow_maxElementsWrap="2"
      app:flow_verticalAlign="top"
      app:flow_wrapMode="chain"/>


 <View
      android:id="@+id/v1"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="1"/>

<View
      android:id="@+id/v2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="1"/>

<View
      android:id="@+id/v3"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="2"/>

<View
      android:id="@+id/dummyView"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="0"/>

<View
      android:id="@+id/v4"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="1"/>

<View
      android:id="@+id/v5"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      app:layout_constraintHorizontal_weight="1"/>

With this approach I got the almost the same bet with a horizontal gap after v3 as below通过这种方法,我在 v3 之后得到了几乎相同的赌注,但水平差距如下当前视图

Is there any one has a worked solution with Constraint Flow please?请问有人有约束流的有效解决方案吗?

Try this尝试这个

<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"
    tools:ignore="MissingConstraints"
    android:layout_width="match_parent"
    android:layout_margin="@dimen/margin_medium"
    android:layout_height="wrap_content">

    <androidx.constraintlayout.helper.widget.Flow
        android:id="@+id/flow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:constraint_referenced_ids="tvUserDetail,tvFirstName,tvLastName,tvPhone,tvEmail"
        app:flow_horizontalGap="10dp"
        app:flow_verticalGap="10dp"
        app:flow_horizontalStyle="spread_inside"
        app:flow_maxElementsWrap="5"
        app:flow_verticalAlign="top"
        app:flow_wrapMode="chain"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvUserDetail"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-medium"
        android:text="User Detail"
        android:background="@drawable/card_design"
        android:padding="12dp"
        android:textColor="@android:color/black" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvFirstName"
        tools:text="User"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/card_design"
        android:fontFamily="sans-serif-medium"
        android:padding="12dp"
        android:textColor="@android:color/black" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvLastName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/card_design"
        android:fontFamily="sans-serif-medium"
        android:padding="12dp"
        android:text="Last"
        android:textColor="@android:color/black" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvPhone"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/card_design"
        android:fontFamily="sans-serif-medium"
        android:padding="12dp"
        android:text="Phone"
        android:textColor="@android:color/black" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvEmail"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/card_design"
        android:fontFamily="sans-serif-medium"
        android:padding="12dp"
        android:text="Email"
        android:textColor="@android:color/black" />
</androidx.constraintlayout.widget.ConstraintLayout>

图片

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM