【问题标题】:How to get gridview with different cells sizes using ConstraintLayout - flow如何使用 ConstraintLayout 获得具有不同单元格大小的 gridview - 流程
【发布时间】:2020-11-28 22:44:01
【问题描述】:

我正在尝试使用 ConstrainLayout 中的 Flow 在下图中获得相同的网格

我的代码如下

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

通过这种方法,我在 v3 之后得到了几乎相同的赌注,但水平差距如下

请问有人有使用约束流的有效解决方案吗?

【问题讨论】:

    标签: android android-layout android-constraintlayout androidx


    【解决方案1】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 2015-06-12
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多