提问者:小点点

Android xml避免重叠约束布局边框半径(按子约束布局)


我对以下结构有一些问题:

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/white_rectangle_radius10">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/first"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

    /// many views here

    </androidx.constraintlayout.widget.ConstraintLayout>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/second"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/first"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

    /// many views here

    </androidx.constraintlayout.widget.ConstraintLayout>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/third"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/second"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

    /// many views here

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

在程序上,它可以是3个内部约束,或者4个或2个。

根约束具有圆形边框半径。 在程序上,当一个内部项目点击时,我设置为该项目的背景颜色,但当它的第一个或最后一个与根边框半径重叠时。

注意:

  1. 不需要建议cardview作为根元素(不是我的选项)
  2. 带有边距/衬垫的“智能播放”也不适合我,因为它应该以编程方式进行更改。

有没有通过XML实现它的一些选项?


共1个答案

匿名用户

>

  • 首先,如果要使用ConstraintLayout,建议不要嵌套布局。

    其次是如何流畅地设计你的视图? constraintlayout的优点之一是使用拖放选项,因此,首先要这样做,并确保将每个项放置在正确的位置(但不要应用任何约束)。 一旦所有项目都在布局上,点击任何一个项目并查看移动屏幕上方的工具栏,就会出现一个神奇的伤口,点击它,约束将根据你在屏幕上组织视图的方式自动生成。

    一旦这样做了,现在您可能需要根据要求稍微调整边距。

    也请在点击魔法伤口之前为每个视图指定id。

    希望我能帮上忙。