androidx / constraintlayout

ConstraintLayout is an Android layout component which allows you to position and size widgets in a flexible way
Apache License 2.0
1.07k stars 176 forks source link

中文情况下,barrier会展示错误。 #411

Open shizhongyu opened 2 years ago

shizhongyu commented 2 years ago

中文情况下,barrier会展示错误。

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tool="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tool:parentTag="androidx.constraintlayout.widget.ConstraintLayout">

<View
    android:id="@+id/message_user_bg"
    android:layout_width="47dp"
    android:layout_height="47dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/bg_circle_photo"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/message_user_header_avatar"
    android:layout_width="47dp"
    android:layout_height="47dp"
    android:layout_marginLeft="1dp"
    android:layout_marginTop="17dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<RelativeLayout
    android:id="@+id/message_user_creator_root"
    android:layout_width="47dp"
    android:layout_height="47dp"
    app:layout_constraintLeft_toLeftOf="@id/message_user_bg"
    app:layout_constraintTop_toTopOf="@id/message_user_bg">

    <View
        android:id="@+id/message_user_bg_creator"
        android:layout_width="47dp"
        android:layout_height="47dp"
        android:background="#ff0000" />

    <ImageView
        android:id="@+id/message_user_header_avatar_creator"
        android:layout_width="46dp"
        android:layout_height="46dp"
        android:layout_margin="1dp" />

    <ImageView
        android:id="@+id/message_user_label"
        android:layout_width="14dp"
        android:layout_height="14dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="1dp"
        android:layout_marginBottom="1dp" />
</RelativeLayout>

<TextView
    android:id="@+id/message_user_name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="4dp"
    android:layout_marginBottom="2dp"
    android:includeFontPadding="false"
    android:textColor="@color/black"
    android:textSize="12sp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toRightOf="@+id/message_user_header_avatar"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@+id/message_user_bg"
    app:layout_constraintWidth_default="wrap" />

<LinearLayout
    android:id="@+id/message_desc_time_root"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:visibility="gone"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/message_user_name"
    app:layout_constraintWidth_default="wrap">

    <TextView
        android:id="@+id/message_time_desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:textColor="@color/black"
        android:textSize="15sp"
        android:visibility="gone" />

</LinearLayout>

<ImageView
    android:id="@+id/message_feed_pic"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_marginLeft="4dp"
    android:layout_marginTop="16dp"
    android:layout_marginRight="16dp"
    android:text="已取关"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/message_feed_text"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_marginLeft="4dp"
    android:layout_marginTop="16dp"
    android:layout_marginRight="16dp"
    android:background="@drawable/message_feed_text_bg"
    android:ellipsize="end"
    android:includeFontPadding="false"
    android:maxLines="3"
    android:paddingLeft="2dp"
    android:textColor="@color/black"
    android:textSize="12dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/user_comment_parent"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:layout_marginRight="80dp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/message_user_name"
    app:layout_constraintWidth_default="wrap">

    <TextView
        android:id="@+id/user_comment_content"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:includeFontPadding="false"
        android:maxLines="3"
        android:text="拉黑"
        android:textColor="@color/black"
        android:textSize="15dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintWidth_default="wrap" />

    <GridView
        android:id="@+id/grid_view_comment_picture"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:horizontalSpacing="4dp"
        android:listSelector="@android:color/transparent"
        android:numColumns="3"
        android:padding="0dp"
        android:visibility="gone"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/user_comment_content"
        app:layout_constraintWidth_default="wrap"
        app:layout_goneMarginTop="0dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/user_comment_parent_parent"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginRight="80dp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/user_comment_parent">

    <TextView
        android:id="@+id/user_comment_content_parent"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:ellipsize="end"
        android:includeFontPadding="false"
        android:maxLines="3"
        android:text="中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文"
        android:textColor="@color/black"
        android:textSize="12dp"
        app:layout_constraintHeight_min="wrap"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintWidth_default="wrap"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <GridView
        android:id="@+id/grid_view_comment_parent_picture"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:horizontalSpacing="4dp"
        android:listSelector="@android:color/transparent"
        android:numColumns="3"
        android:padding="0dp"
        android:visibility="gone"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/user_comment_content_parent"
        app:layout_constraintWidth_default="wrap"
        app:layout_goneMarginTop="0dp" />

    <View
        android:id="@+id/comment_parent_line"
        android:layout_width="2dp"
        android:layout_height="0dp"
        android:background="@drawable/message_line_bg"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.Barrier
    android:id="@+id/barrier"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:barrierDirection="bottom"
    app:constraint_referenced_ids="user_comment_parent_parent,
    user_comment_parent, message_feed_text, message_feed_pic" />

<TextView
    android:id="@+id/message_time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:maxLines="1"
    android:text="2021/10/01"
    android:textColor="@color/black"
    android:textSize="12dp"
    app:layout_constraintLeft_toLeftOf="@id/message_user_name"
    app:layout_constraintTop_toBottomOf="@id/barrier" />

<LinearLayout
    android:id="@+id/root_reply_praise_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="16dp"
    android:orientation="horizontal"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@id/message_time">

    <LinearLayout
        android:id="@+id/message_feed_reply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="16dp"
        android:orientation="horizontal"
        android:paddingBottom="8dp">

        <ImageView
            android:id="@+id/feed_comment_view"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:layout_marginRight="4dp"
            android:src="@drawable/feed_comment_icon" />

        <TextView
            android:id="@+id/feed_reply_count_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="回复"
            android:textColor="@color/black"
            android:textSize="12dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/message_feed_praise"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="8dp">

        <ImageView
            android:id="@+id/feed_praise_icon_view"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:layout_marginRight="4dp"
            android:src="@drawable/feed_unlike" />

        <TextView
            android:id="@+id/feed_praise_count_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="赞"
            android:textColor="@color/black"
            android:textSize="12dp" />
    </LinearLayout>

</LinearLayout>

<View
    android:layout_width="0dp"
    android:layout_height="0.5dp"
    android:layout_marginTop="4dp"
    android:background="@color/black"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/root_reply_praise_view"
    app:layout_constraintWidth_default="wrap" />

</androidx.constraintlayout.widget.ConstraintLayout>

jafu888 commented 2 years ago

Could you share a picture of what you are seeing? Why do you think it is the barrier? image

shizhongyu commented 2 years ago

正常

image

异常

image

jafu888 commented 2 years ago

What is different between the two pictures to show this bug?

shizhongyu commented 2 years ago

红框中日期和上面的中文重叠了,这是不正常的。

shizhongyu commented 2 years ago

按照贴出来的代码,显示成图片2明显有问题。

jswong65 commented 2 years ago

你好,我也嘗試跑了你所提供的代碼,但是我們並沒有遇到你所遇到的問題。 可以麻煩你試著更新一下Android Studio,或者讓我們知道你正在使用的版本嗎?

在你提拱的正常跟異常的截圖中,有任何代碼的更動嗎? 我們想多了解一下是什麼原因造成了異常的狀況。

謝謝!

image

image

shizhongyu commented 2 years ago

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tool="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tool:parentTag="androidx.constraintlayout.widget.ConstraintLayout">

<View
    android:id="@+id/message_user_bg"
    android:layout_width="47dp"
    android:layout_height="47dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/bg_circle_photo"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/message_user_header_avatar"
    android:layout_width="47dp"
    android:layout_height="47dp"
    android:layout_marginLeft="1dp"
    android:layout_marginTop="17dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<RelativeLayout
    android:id="@+id/message_user_creator_root"
    android:layout_width="47dp"
    android:layout_height="47dp"
    app:layout_constraintLeft_toLeftOf="@id/message_user_bg"
    app:layout_constraintTop_toTopOf="@id/message_user_bg">

    <View
        android:id="@+id/message_user_bg_creator"
        android:layout_width="47dp"
        android:layout_height="47dp"
        android:background="#ff0000" />

    <ImageView
        android:id="@+id/message_user_header_avatar_creator"
        android:layout_width="46dp"
        android:layout_height="46dp"
        android:layout_margin="1dp" />

    <ImageView
        android:id="@+id/message_user_label"
        android:layout_width="14dp"
        android:layout_height="14dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="1dp"
        android:layout_marginBottom="1dp" />
</RelativeLayout>

<TextView
    android:id="@+id/message_user_name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="4dp"
    android:layout_marginBottom="2dp"
    android:includeFontPadding="false"
    android:textColor="@color/black"
    android:textSize="12sp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toRightOf="@+id/message_user_header_avatar"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@+id/message_user_bg"
    app:layout_constraintWidth_default="wrap" />

<LinearLayout
    android:id="@+id/message_desc_time_root"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:visibility="gone"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/message_user_name"
    app:layout_constraintWidth_default="wrap">

    <TextView
        android:id="@+id/message_time_desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:textColor="@color/black"
        android:textSize="15sp"
        android:visibility="gone" />

</LinearLayout>

<ImageView
    android:id="@+id/message_feed_pic"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_marginLeft="4dp"
    android:layout_marginTop="16dp"
    android:layout_marginRight="16dp"
    android:text="已取关"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/message_feed_text"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_marginLeft="4dp"
    android:layout_marginTop="16dp"
    android:layout_marginRight="16dp"
    android:background="@drawable/message_feed_text_bg"
    android:ellipsize="end"
    android:includeFontPadding="false"
    android:maxLines="3"
    android:paddingLeft="2dp"
    android:textColor="@color/black"
    android:textSize="12dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/user_comment_parent"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:layout_marginRight="80dp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/message_user_name"
    app:layout_constraintWidth_default="wrap">

    <TextView
        android:id="@+id/user_comment_content"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:includeFontPadding="false"
        android:maxLines="3"
        android:text="拉黑"
        android:textColor="@color/black"
        android:textSize="15dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintWidth_default="wrap" />

    <GridView
        android:id="@+id/grid_view_comment_picture"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:horizontalSpacing="4dp"
        android:listSelector="@android:color/transparent"
        android:numColumns="3"
        android:padding="0dp"
        android:visibility="gone"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/user_comment_content"
        app:layout_constraintWidth_default="wrap"
        app:layout_goneMarginTop="0dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/user_comment_parent_parent"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginRight="80dp"
    app:layout_constraintWidth_default="wrap"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/user_comment_parent">

    <TextView
        android:id="@+id/user_comment_content_parent"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:ellipsize="end"
        android:includeFontPadding="false"
        android:maxLines="3"
        android:text="中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文中文"
        android:textColor="@color/black"
        android:textSize="12dp"
        app:layout_constraintHeight_min="wrap"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintWidth_default="wrap"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <GridView
        android:id="@+id/grid_view_comment_parent_picture"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:horizontalSpacing="4dp"
        android:listSelector="@android:color/transparent"
        android:numColumns="3"
        android:padding="0dp"
        android:visibility="gone"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/user_comment_content_parent"
        app:layout_constraintWidth_default="wrap"
        app:layout_goneMarginTop="0dp" />

    <View
        android:id="@+id/comment_parent_line"
        android:layout_width="2dp"
        android:layout_height="0dp"
        android:background="@drawable/message_line_bg"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.Barrier
    android:id="@+id/barrier"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:barrierDirection="bottom"
    app:constraint_referenced_ids="user_comment_parent_parent,
    user_comment_parent, message_feed_text, message_feed_pic" />

<TextView
    android:id="@+id/message_time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:maxLines="1"
    android:text="2021/10/01"
    android:textColor="@color/black"
    android:textSize="12dp"
    app:layout_constraintLeft_toLeftOf="@id/message_user_name"
    app:layout_constraintTop_toBottomOf="@id/barrier" />

<LinearLayout
    android:id="@+id/root_reply_praise_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="16dp"
    android:orientation="horizontal"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@id/message_time">

    <LinearLayout
        android:id="@+id/message_feed_reply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="16dp"
        android:orientation="horizontal"
        android:paddingBottom="8dp">

        <ImageView
            android:id="@+id/feed_comment_view"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:layout_marginRight="4dp"
            android:src="@drawable/feed_comment_icon" />

        <TextView
            android:id="@+id/feed_reply_count_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="回复"
            android:textColor="@color/black"
            android:textSize="12dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/message_feed_praise"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="8dp">

        <ImageView
            android:id="@+id/feed_praise_icon_view"
            android:layout_width="16dp"
            android:layout_height="16dp"
            android:layout_marginRight="4dp"
            android:src="@drawable/feed_unlike" />

        <TextView
            android:id="@+id/feed_praise_count_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="赞"
            android:textColor="@color/black"
            android:textSize="12dp" />
    </LinearLayout>

</LinearLayout>

<View
    android:layout_width="0dp"
    android:layout_height="0.5dp"
    android:layout_marginTop="4dp"
    android:background="@color/black"
    app:layout_constraintLeft_toLeftOf="@+id/message_user_name"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/root_reply_praise_view"
    app:layout_constraintWidth_default="wrap" />

</androidx.constraintlayout.widget.ConstraintLayout>

shizhongyu commented 2 years ago

image 你运行下上面代码。只添加了一行。

shizhongyu commented 2 years ago

@jswong65

jswong65 commented 2 years ago

謝謝你提供的訊息,我們可以重現一樣的問題。 但是我們需要一些時間去了解具體的原因跟修復這個問題。