我如何避免这种硬编码的数学...

<resources>
 <dimen name="uno">10dip</dimen>
 <dimen name="dos">6dip</dimen>
 <dimen name="uno_plus_dos">16dip</dimen>
</resources>

<Button
 android:layout_marginTop="@dimen/uno_plus_dos" />
...并将其转换为这样的内容?
<Button
 android:layout_marginTop="@dimin/uno + @dimen/dos" />

最佳答案

你不,对不起。布局XML文件不支持表达式。您要么:

  • 保留为@dimen/uno_plus_dos
  • 在Java代码中设置边距,您可以在其中用一堆额外的代码行或
  • 替换单个资源
  • 编写自己的布局预处理器,以处理类似
  • 的表达式

    UPDATE data binding library在其表达式中支持某些操作。我不确定它是否可以处理这种特定情况。

    关于android - 如何将数学运算应用于Android尺寸?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8101178/

    10-11 02:43