【问题标题】:Android ConstraintLayout - how to create chain with uneven space?Android ConstraintLayout - 如何创建空间不均匀的链?
【发布时间】:2020-06-03 23:49:00
【问题描述】:

如何使用 ConstraintLayouts 创建它? 我想将一些视图附加到右侧,一些附加到左侧,中间的可变空间取决于右侧/左侧视图的长度。我知道链,但它们总是在视图之间添加一个均匀的空间,我不想给空间一个固定的值。在线性布局中,我会这样做:

<LinearLayout >
<ImageView />
<TextView />

<Space
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />

<ImageView />
<ImageView />
<TextView />
<LinearLayout/>

这可以在 ConstraintLayout 中复制吗?

【问题讨论】:

  • 前两个对齐开头,后三个对齐到末尾。
  • @Nicolas 如果其他视图的长度太大会发生什么,它们不会重叠吗?
  • 是的,但你没有说你想要什么行为。

标签: java android android-constraintlayout


【解决方案1】:

当您可以直接将Constraints 用于单个元素时,为什么还要在两者之间使用链或空格。看看这个伪代码,这会有所帮助。

<androidx.constraintlayout.widget.ConstraintLayout
  .....
  .....
>
<TextView
  .....
  app:layout_constraintStart_toStartOf="parent"
  app:layout_constraintTop_toTopOf="parent"
  android:layout_marginStart="10dp"
  android:drawableStart=" Your clock icon" //Using this you don't have to use a separate ImageView
 />
 <ImageView
  .....
  app:layout_constraintEnd_toStartOf=" ID of your Download Count TextView"
  app:layout_constraintTop_toTopOf="parent"
  android:layout_marginEnd="10dp"
 />
 <TextView
  .....
  app:layout_constraintEnd_toEndOf="parent"
  app:layout_constraintTop_toTopOf="parent"
  android:layout_marginEnd="10dp"
  android:drawableStart=" Your Download icon"
 />
 </androidx.constraintlayout.widget.ConstraintLayout>

我使用了drawbleStart,而不是单独的ImageView,如果您愿意,可以使用app:layout_constraintEnd_toStartOf=" ID of the View"。给定的边距是屏幕结束/开始和视图之间的空间,您可以根据需要进行调整。

这将为您提供您共享的视图。检查这是否有帮助。

【讨论】:

    【解决方案2】:

    您可以像这样使用 ConstraintLayout 来实现这一点:

    <ConstraintLayout >
    
        <LinearLayout
            android:id="@+id/first"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="end"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/first"
            app:layout_constraintTop_toTopOf="parent"/>
    
    </ConstraintLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多