gpt4 book ai didi

android - CoordinatorLayout的 'keyline' LayoutParams怎么用?

转载 作者:行者123 更新时间:2023-12-04 14:00:12 31 4
gpt4 key购买 nike

根据文档:

The index of the horizontal keyline specified to the parent CoordinatorLayout that this child should align relative to.



谁能用一个例子解释“关键线”是如何工作的?

最佳答案

有两个部分:

  • 设置 CoordinatorLayout 的关键线, 和
  • 在 subview 中引用关键线。

  • 对于前者,创建一个 int 数组资源并从 keylines 引用它 CoordinatorLayout 的属性.例如:
    资源/值/arrays.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <array name="keylines">
    <item>16</item>
    <item>72</item>
    <item>160</item>
    <item>256</item>
    <item>320</item>
    </array>
    ...
    </resources>
    Activity 主.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:keylines="@array/keylines"
    ...
    然后,要相对于关键线水平定位 subview ,设置其 layout_keyline keylines 中的索引属性数组资源。例如,要在关键线 2 上设置一个按钮(位置为 160dp):
    activity_main.xml
        ...
    <Button
    app:layout_keyline="2"
    相对于关键线的定位由 layout_gravity 定义。属性。对于按钮,这将定位按钮的文本,因此如果您想使用重力来定位按钮,请将其包装在另一个 View 中(例如 FrameLayout )并为父 View 设置关键线而不是 Button :
        <FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top|end"
    app:layout_keyline="2"
    ...>

    <Button
    ...
    Keylines 允许您在 CoordinatorLayout 中水平放置 subview 。 .垂直定位由垂直边距和内边距确定,并且相对于 CoordinatorLayout 的顶部。 .
    请注意,如果 anchor也为 subview 设置,它的关键线将被忽略。
    如果您对布局逻辑感到好奇,它由 onLayoutChild() 实现和 layoutChildWithKeyline() CoordinatorLayout .

    关于android - CoordinatorLayout的 'keyline' LayoutParams怎么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49965183/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com