繁体   English   中英

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

[英]How can my activity run on two layouts?

基本上,我有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相同?

这不是因为您引用的是相同的属性ID,而是因为您引用的是两个xml布局中都可用的现有 ID。

为什么我的应用程序不崩溃而是正常运行?

因为所需的视图(文本/按钮)在xml中可用。 换句话说,所有ID在两个xml中都可用。

如果ID的值或任何视图缺失/不匹配,则应用程序将引发错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM