如何在包含一个宽度为'0dp'的视图的ConstraintLayout中将打包链居中?

时间:2018-10-10 07:14:49

标签: android android-constraintlayout constraint-layout-chains

我想使页面标题居中。标题看起来像(1) Dokument1(3) GreatDocument。我想使用60dp的左右边距,并且文档名称的长度可变。当我对wrap_content使用@+id/title时,居中效果很好,但是对于长文档名,页边距不起作用。当我使用0dp时,边距得到尊重,但对中不起作用。

如何使ConstraintLayout中的打包链居中,同时具有动态长度和边距。

<android.support.constraint.ConstraintLayout
    android:id="@+id/top_bar_xml"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/open_brackets"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="("
        android:gravity="center_vertical"
        android:layout_marginStart="60dp"

        android:textSize="20sp"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintEnd_toStartOf="@id/page_count"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/page_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        android:gravity="center_vertical"
        android:textSize="20sp"
        app:layout_constraintStart_toEndOf="@id/open_brackets"
        app:layout_constraintEnd_toStartOf="@id/close_brackets"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/close_brackets"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=") "
        android:gravity="center_vertical"
        android:textColor="@color/black"
        android:textSize="20sp"
        app:layout_constraintStart_toEndOf="@id/page_count"
        app:layout_constraintEnd_toStartOf="@id/title"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="60dp"
        android:text="DocumentTitle"
        android:textSize="20sp"
        android:gravity="center_vertical"
        android:ellipsize="end"
        app:layout_constraintStart_toEndOf="@+id/close_brackets"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

(我简化了示例,删除了对ViewModels的页数和标题引用;文档下面还有其他视图,这些视图的边距较低)

1 个答案:

答案 0 :(得分:1)

您可以将Sub Submit_OrderForm() Dim ws As Worksheet Dim LastRow As Long Set ws = Worksheets("OrderData") LastRow = ws.Range("B" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row customerid = Sheets("OrderForm").Range("N6").Value 'This is where I'm stuck. If column header matches the product chosen, Then: ws.Range("C:H").Value = Worksheets("OrderForm").Range("N9").Value 'Product 1 ws.Range("C:H").Value = Worksheets("OrderForm").Range("N10").Value 'Product 2 ws.Range("C:H").Value = Worksheets("OrderForm").Range("N11").Value 'Product 3 End If End Sub 的宽度设置为@id/title并添加

wrap_content

归因于它,以便当app:layout_constrainedWidth="true" 太大而无法满足边距时,要遵守该约束。