gpt4 book ai didi

Android——如何管理多个布局文件才符合DRY原则?

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:32 25 4
gpt4 key购买 nike

为了支持不同的分辨率,我们需要按照 Supporting Multiple Screens 中的描述制作布局文件的变体。很好。假设您不打算显示不同的 UI 排列,而只是想适本地拉伸(stretch),那么您的变化主要是关于不同的权重。至少到目前为止,我的应用就是这种情况。

现在,您如何管理更改具有这种结构的应用程序?由于它会多次重复布局,因此应用程序中的一个布局更改会导致多个文件发生更改。

我想到了两个选择:

  1. 在代码中动态更改值
    • 缺点是您的布局相关工作会溢出到代码中。我真的不喜欢这样。
  2. 制作子布局以提取常见的布局元素
    • 缺点是布局的层次结构会更深、更杂乱,因此更难弄清楚发生了什么。不过,由于 Hierarchy Viewer,这比选项 #1 更好。 .我不确定这种方法是否总是可行。

如果您能分享解决此问题的技巧,我们将不胜感激。

最佳答案

我想我找到了解决办法。如果其他人竖起大拇指,我会接受它作为答案。

我在 Supporting Multiple Screens 中找到了配置限定符不仅适用于 res/drawableres/layout,还适用于 res/values。所以在我的 layout/some_layout.xml 上,我这样说:

<ImageButton
android:id="@+id/imagePlay"
android:layout_width="@dimen/button_size"
android:layout_height="@dimen/button_size"
android:scaleType="fitCenter"
android:src="@drawable/play" />

然后在 values/layout.xml 文件中定义默认的 button_size:

<resources>
<dimen name="button_size">44dp</dimen>
</resources>

然后在 values-xlarge/layout.xml 文件中定义 xlarge 模式 button_size:

<resources>
<dimen name="button_size">66dp</dimen>
</resources>

我没有尝试其他 values 资源,但我认为它也适用于 Styles and Themes因此,如果您的布局自定义不仅仅是尺寸或重量,您可以在值中定义样式并使用它。

关于Android——如何管理多个布局文件才符合DRY原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616321/

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