0

我有我的根布局,就像ConstraintLayout我的活动一样。我添加了一个Guideline基于百分比的,它大约是顶部的 35%。该指南将布局分为 2 个部分(顶部 35% 和底部 65%)。在前 25% 部分我有 2 TextViews。textview 文本是动态变化的。一个Barrier添加在布局中,其中添加了我的指南。下方 65% 部分内的图像顶部约束赋予屏障底部,25% 部分内文本视图的底部约束赋予屏障顶部。当我在 textview 上方的 Text 增加时,它不会改变指南并违反 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:tools="http://schemas.android.com/tools"
    android:id="@+id/clIntroMainContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/intro_screen_background">


    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/mybarrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="bottom"
        app:constraint_referenced_ids="imageView,textView4,textView3,guideline2"
        tools:layout_editor_absoluteY="731dp" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:scaleType="fitXY"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:srcCompat="@drawable/intro_background_cross" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:layout_constraintBottom_toBottomOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.50"
        app:srcCompat="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dp"
        android:gravity="center"
        android:text="@string/auto_expense_title"
        android:textColor="@color/white"
        android:textSize="@dimen/ExtraLargeText"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="@+id/imageView2"
        app:layout_constraintStart_toStartOf="@+id/imageView2"
        app:layout_constraintTop_toBottomOf="@+id/imageView2" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dp"
        android:gravity="center"
        android:text="@string/auto_expense_info"
        android:textColor="@color/white"
        android:textSize="@dimen/MedText"
        app:layout_constraintBottom_toTopOf="@+id/mybarrier"
        app:layout_constraintEnd_toEndOf="@+id/textView3"
        app:layout_constraintStart_toStartOf="@+id/textView3"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

    <ImageView
        android:id="@+id/iv2"
        android:layout_width="wrap_content"
        android:layout_height="330dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        app:layout_constraintBottom_toTopOf="@+id/mybarrier"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline2"
        app:layout_constraintVertical_bias="0.0"
        app:srcCompat="@drawable/phone_blue_black_final_intro" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.35" />
</androidx.constraintlayout.widget.ConstraintLayout>
4

1 回答 1

0

据我了解,您要根据“textView4”的文本大小更改来更改顶部的问题,如果文本很小,那么上面的部分将不会在我的回答中保持 25%。如果您的要求不同,请告诉我,我会更新它。

    <?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:tools="http://schemas.android.com/tools"
    android:id="@+id/clIntroMainContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_grey">


    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/mybarrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="bottom"
        app:constraint_referenced_ids="imageView,textView4,textView3,guideline2"
        tools:layout_editor_absoluteY="731dp" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:scaleType="fitXY"
        android:visibility="visible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@color/browser_actions_text_color" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:layout_constraintBottom_toBottomOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.50"
        app:srcCompat="@drawable/ic_pen" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dp"
        android:gravity="center"
        android:text="auto_expense_title"
        android:textColor="@color/white"
        android:textSize="@dimen/_12ssp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="@+id/imageView2"
        app:layout_constraintStart_toStartOf="@+id/imageView2"
        app:layout_constraintTop_toBottomOf="@+id/imageView2" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dp"
        android:gravity="center"
        android:text="auto_expense_info  auto_expense_info auto_expense_info auto_expense_info"
        android:textColor="@color/white"
        android:textSize="@dimen/_15ssp"
        app:layout_constraintBottom_toTopOf="@+id/mybarrier"
        app:layout_constraintEnd_toEndOf="@+id/textView3"
        app:layout_constraintStart_toStartOf="@+id/textView3"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

    <ImageView
        android:id="@+id/iv2"
        android:layout_width="wrap_content"
        android:layout_height="330dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mybarrier"
        app:layout_constraintVertical_bias="0.0"
        app:srcCompat="@drawable/empty_star" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.35" />
</androidx.constraintlayout.widget.ConstraintLayout>

在此处输入图像描述

于 2021-07-30T08:39:54.170 回答