35

我想创建一个等于“wrap_content”常量的维度。

所以根据developer.android.com 参考我写:

<dimen name="horizontal_border_height">-2</dimen>

但是 ADT 说:

错误:不允许使用整数类型(在“horizo​​ntal_border_height”处,值为“-2”)

分配 'wrap_content' 值也会产生错误。

我究竟做错了什么?任何想法如何使它工作?

4

6 回答 6

61

要使用 wrap_content 或 match_parent,您需要在 dimens.xml 文件中创建以下项目:

<item name="match_parent" format="integer" type="dimen">-1</item>
<item name="wrap_content" format="integer" type="dimen">-2</item>

然后你可以像这样简单地使用它:

<dimen name="layout_height">@dimen/match_parent</dimen>
<dimen name="layout_width">@dimen/wrap_content</dimen>
于 2015-12-09T10:22:58.267 回答
17

使用这个,它对我有用

<integer name="custom_wrap_content">-2</integer>
<dimen name="horizontal_border_height">@integer/custom_wrap_content</dimen>

于 2013-09-26T11:37:17.587 回答
15

请在维度中使用“-2dp”而不是“-2”。
也就是在-2后面加上dp。

于 2013-08-30T08:53:18.287 回答
6

查看应用资源 API 指南 ,您可以查看维度值支持的单位。您不能使用维度将 wrap_content 作为视图维度传递。

于 2013-07-08T12:06:17.660 回答
5

你可以这样做

<item name="match_parent" format="integer" type="dimen">-1</item>

<item name="wrap_content" format="integer" type="dimen">-2</item>

<dimen name="layout_height">@dimen/wrap_content</dimen>
于 2016-05-04T06:56:07.047 回答
0

据我所知,你不能。以下是有效的维度类型:

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

XML 中定义的维度值。维度由一个数字指定,后跟一个度量单位。例如:10px、2in、5sp

有效单位:

dp , sp , pt , px , mm , in

我会wrap_content直接放入我的 xml 布局或样式中,因为无论您wrap_content拥有wrap_content什么设备/配置。

于 2013-07-08T11:58:11.553 回答