我曾经为 Android View 提供简单的 id,但最近,由于这个问题,我完全停止了它。
假设我有 2 个布局,一个名为 first_layout.xml
第二个名为 second_layout.xml
.在每个布局中,都有一个 ID 为 username_input
的 View 。 .这个id用于不同的activity类来访问目标 View ,可以是ButterKnife
绑定(bind), Kotlin Android Extensions
, 甚至 findViewById
.
现在,无论出于何种原因,我只需要在一种布局中重命名 id 。所以我做Refactor -> Rename
.怎么了? Android Studio 只是替换了 id username_input
在整个项目中,弄乱了具有相同 ID 的其他布局。大多数人不会为项目中的每个 View 都使用唯一的 id,因为这不是强制性的,但我这样做是因为我做了很多重构,而且很多时候我丢失了 小时 因为项目中的这种非上下文替换。
在这种情况下我有什么选择?有没有办法让 Android Studio 在这种情况下进行上下文替换,或者我应该继续在我的项目中制作唯一的 id?
最佳答案
不久前,我遇到了同样的问题,我发现这是 Android Studio 的预期行为,因为其他元素可能会受限于 ID 正在更改的元素。因此,您需要更新所有 ID,尤其是在新布局文件 中通过其文本编辑器 而不是来自其设计编辑器的属性部分
它对我来说工作得很好,所以对你来说也必须很好:)
关于Android Studio 更改一个 xml 文件中的 ID 会更改另一个文件中的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660446/