<style name="mythemename">
<item name="d_myvar">100dip</item>
</style>
我希望能够在res / values / dimens.xml中引用它,如下所示:
<dimen name="myvar">?d_myvar</dimen>
唉,这不起作用.当我尝试使用@ dimen / myvar作为LinearLayout的高度时,应用程序崩溃并显示错误“您必须提供布局高度属性”.
我也试过了
<dimen name="myvar" value="?d_myvar" />
但那不会编译.
如何在我的xml中定义@ dimen / myvar,以便加载主题中定义的?d_myvar变量?
谢谢!
解决方法:
我在意大利启动场景中看到了您的帮助请求.
不幸的是,根据syntax of the dimen
tag:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen
name="dimension_name"
>dimension</dimen>
</resources>
?[package:][type:]name
解决方案:
> Gix’s answer将是定义和重用维度的标准方法.
>也许您可以重新组织代码以重用d_myvar through inheritance?
>作为最后和绝望的手段,我会选择一个shell脚本,使用xml命令行工具自动执行变量替换过程.我从未亲自使用它们,但请参见例如xmllint,xmlstarlet或this article.