Android UI:“智能”居中?

Android UI:“智能”居中?,第1张

概述所以我有一个UI元素(单行文本),我想要相对于整个设备水平居中 – 除非/直到它与给定视图组/布局中的其他UI元素发生碰撞.在那一点上,我希望它能够在剩余的空间中居中,或者尽可能接近整体居中而不会碰撞. [当最终没有足够的空间时,我想使用省略号.] 有没有办法使用标准的Android布局来实现这一目标? 我目前正在通过代码调整布局约束来实现此目的,当视图组的宽度发生变化,文本发生变化或相关的UI元 所以我有一个UI元素(单行文本),我想要相对于整个设备水平居中 – 除非/直到它与给定视图组/布局中的其他UI元素发生碰撞.在那一点上,我希望它能够在剩余的空间中居中,或者尽可能接近整体居中而不会碰撞. [当最终没有足够的空间时,我想使用省略号.]

有没有办法使用标准的Android布局来实现这一目标?

我目前正在通过代码调整布局约束来实现此目的,当视图组的宽度发生变化,文本发生变化或相关的UI元素变得可见/不可见时.它工作正常,但我不禁想到一些布局应该只为我这样做.

解决方法@H_502_16@ 您可以使用加权水平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且权重为1的TextVIEw将使用剩余的水平空间.

您可以向linearLayout添加其他小部件,TextVIEw将始终占用剩余空间.

例如,如果将按钮的可见性更改为GONE,您将看到TextVIEw将展开以使用整个宽度.同样,如果以编程方式将新窗口小部件添加到linearLayout,则TextVIEw的可用空间将进行调整.

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

总结

以上是内存溢出为你收集整理的Android UI:“智能”居中?全部内容,希望文章能够帮你解决Android UI:“智能”居中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1123983.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存