gpt4 book ai didi

安卓用户界面 : "Smart" centering?

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:50 28 4
gpt4 key购买 nike

所以我有一个 UI 元素(单行文本),我希望它相对于整个设备水平居中——除非/直到它与给定 View 组/布局中的其他 UI 元素发生冲突。那时我希望它要么在剩余空间中居中,要么在不发生碰撞的情况下尽可能接近整体居中。 [当终于没有足够的空间时,我想使用省略号。]

有什么方法可以仅使用标准的 Android 布局来实现这一目标吗?

我目前通过在 View 组的宽度变化、文本变化或相关的 UI 元素变得可见/不可见时调整布局约束的代码来实现这一点。它工作正常,但我不禁想到某些布局应该只为我做这件事。

最佳答案

您可以像这样使用加权水平LinearLayout:

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:gravity="center_horizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="i am centered"
android:ellipsize="end"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="another widget"/>
.
.
.
</LinearLayout>

宽度为 0dp权重为 1TextView 将使用剩余的水平空间。

您可以向 LinearLayout 添加其他小部件,TextView 将始终占用剩余空间。

例如,如果您将 Button 的 Visibility 更改为 GONE,您将看到 TextView 将展开以使用整个宽度。同样,如果您以编程方式向 LinearLayout 添加新的小部件,则 TextView 的可用空间将会调整。

您可以进一步添加 ellipsize 选项来控制当文本不适合 TextView 大小时发生的情况。

关于安卓用户界面 : "Smart" centering?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657641/

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