我的活动如何在两种布局上运行



基本上,我有 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。

最新更新