基本上,我有 2 个 xml 布局。一个用于小屏幕尺寸,另一个用于大屏幕尺寸。在我的小屏幕尺寸的XML布局上,我实际上只是完全复制大屏幕尺寸XML中的内容(保持所有内容相同,例如:ID名称等(,并且只更改文本大小和按钮大小。然后,在我的活动代码中使用条件来调用它们,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (condition){
setContentView(R.layout.bigScreenSize);
} else{
setContentView(R.layout.smallScreenSize);
}
我的问题是为什么我的应用程序没有崩溃而是正常运行?是因为在两个 XML 布局上具有相同的属性 ID 吗?谢谢!
您定位小屏幕和大屏幕尺寸的方法不符合 Google 的建议。
为了针对不同的屏幕尺寸优化您的 UI,您确实需要不同的布局,但它们必须相同(就 id 而言(,并且只应包含在不同的布局目录中。
更多信息在这里
为什么我的应用程序没有崩溃,而是正常运行?
为什么你预计你的应用会崩溃?让id指向不同的小部件/视图是完全正常的。只要一个人不同时指向两个不同的视图。在您的情况下,仅同时使用两种布局(大或小(中的一种。因此,android 可以正确识别我在布局中引用哪个视图。
为什么我的应用程序没有崩溃,而是正常运行?
因为所需的视图(文本/按钮(在 xml 中可用。换句话说,所有 id 在两个 xml 中都可用。
如果 id 的值或任何视图丢失/不匹配,应用将引发错误。
为什么我的应用程序没有崩溃,而是正常运行?
它之所以有效,是因为实际上可以使用两种布局。您可以对单个活动使用尽可能多的布局,但不能同时使用。
这不是因为您引用的是是因为在两个 XML 布局上具有相同的属性 ID 吗?
相同的属性 ID,而是因为您引用的是两个 xml 布局中可用的现有 ID。