找不到资源。这是我的资源:
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
我也尝试清理项目,但这没用。
答案 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)