应用程序和库中的硬币相同



有人可以告诉我吗,如果应用程序和库中有一些同名的dimen怎么办。

迪门.xml 应用程序内部

<dimen name="activity_horizontal_margin">10dp</dimen>

迪门.xml图书馆

<dimen name="activity_horizontal_margin">12dp</dimen>

哪一个将在运行时使用?

我可以尝试一下,但我不清楚被用作最终值的原因。

您可以尝试在dimensions.xml中重新定义大小:

<resources xmlns:tools="http://schemas.android.com/tools">
<dimen name="activity_horizontal_margin" tools:override="true">12dp</dimen>
</resources>

请小心使用,因为这是一个黑客,而不是实际的解决方案。如果在将来的库版本中更改了资源的名称,则解决方案可能不起作用。

重新定义(同名(维度资源就像覆盖 lib 资源一样。
就像重写类方法一样。

我认为答案是:

这取决于填充的布局,如果它是来自应用程序模块的活动布局,则将使用应用程序的 dimen,反之亦然。

这是一个很好的问题,我不知道为什么它被否决了。虽然所选答案是正确的,但它的细微差别略高,但 Android 选择了"最具体"的资源,该资源优先于应用资源值。

例如,考虑库中的布尔<bool name="isTablet">true</bool>,设置如下:

  • - 假
  • 值-SW600DP- 真

在这样的应用程序中:

  • - 假
  • 值-SW600DP-土地- 真

从应用调用 1280x800 纵向平板电脑上的布尔值是多少?

答案是正确的,即使应用程序指定它仅在横向中为真!

最新更新