找不到资源

时间:2019-08-07 07:09:23

标签: android

找不到资源。这是我的资源:

dimens.xml

<resources>
    <dimen name="recyclerview_padding">10dp</dimen>
</resources>

在我的片段中,我尝试了以下每个操作:

val padding = getResources().getDimension(R.dimen.recyclerview_padding) as Int

val padding = context.getResources().getDimension(R.dimen.recyclerview_padding) as Int

val padding = activity.getResources().getDimension(R.dimen.recyclerview_padding) as Int

我也尝试清理项目,但这没用。

5 个答案:

答案 0 :(得分:1)

这是您应该如何获得价值的

<resources>
<dimen name="recyclerview_padding">10dp</dimen>
</resources>

dimens.xml

val dimenFromXml = resources.getDimension(R.dimen.recyclerview_padding) // Int

默认情况下它将位于Float中 或者您可以使用getDimensionPixelOffset将其转换为Int

val dimenFromXml = resources.getDimensionPixelOffset(R.dimen.recyclerview_padding) // Float

答案 1 :(得分:0)

只需删除(Int)强制转换,就像在getDimension(int)中所说的那样,它期望将Int作为参数,但是会返回Float

  

返回   float资源尺寸值乘以适当的指标即可转换为像素。

val myDimen = activity?.resources?.getDimension(R.dimen.recyclerview_padding)

答案 2 :(得分:0)

转到文件->使缓存/重启无效

答案 3 :(得分:0)

使用“ as Int”是错误的。这是正确的:

getResources().getDimension(R.dimen.recyclerview_padding).toInt()

奇怪的是,如果您只是评估:

getResources().getDimension(R.dimen.recyclerview_padding)

它将生成“找不到资源”异常。

答案 4 :(得分:0)

您也可以使用

getResources().getDimensionPixelSize(R.dimen.recyclerview_padding)