您可能知道,您可以RecyclerView.ItemDecoration為 RecyclerView 的 Items 設定一個。但是,我想實作與ConstraintLayout's類似的東西Flow。
目前,我可以創建多個分隔視圖,并在每個普通視圖之后將它們放在我的流程中,但是當我Flow有多個視圖時這可能會很麻煩,而這不是DRY重復自己的一個例子。此外,值得注意的是,您不能多次參考同一個視圖,Flow因此您不能創建分隔視圖并在不同位置多次參考它。務實地,我可以為它們下面的一條線創建一個自定義背景/樣式,TextView以某種方式復制一個分隔線,但如果Flows 孩子不是TextView呢?

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView 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="wrap_content"
android:layout_gravity="center"
android:layout_margin="4dp"
android:checkable="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.helper.widget.Flow
android:id="@ id/product_item_detail_flow"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:orientation="vertical"
android:padding="8dp"
app:constraint_referenced_ids="product_item_category,materialDivider,product_item_name,materialDivider2,product_item_price"
app:flow_verticalGap="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@ id/product_item_image"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.divider.MaterialDivider
android:id="@ id/materialDivider"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<com.google.android.material.divider.MaterialDivider
android:id="@ id/materialDivider2"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<TextView
android:id="@ id/product_item_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
tools:text="@tools:sample/lorem" />
<TextView
android:id="@ id/product_item_category"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="14sp"
tools:text="@tools:sample/lorem" />
<TextView
android:id="@ id/product_item_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
tools:text="@tools:sample/us_zipcodes" />
<ImageView
android:id="@ id/product_item_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:contentDescription="@string/product_image"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@ id/product_item_detail_flow"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent=".33"
tools:srcCompat="@tools:sample/avatars" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
考慮另一個像這樣的具有多個視圖的流程,在我看來,在每個專案之后放置一個分隔符是不明智的:

簡而言之,如何為約束布局的流子項創建分隔項裝飾?
編輯:這兩個流程實際上都是 recyclerview 的專案
uj5u.com熱心網友回復:
我沒有找到一種方法來實作這一點ConstraintLayout,Flow但是,這可以使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/460530.html
