【问题标题】:Unexpected file added when creating new blank activity in android studio在 android studio 中创建新的空白活动时添加了意外的文件
【发布时间】:2016-03-08 20:15:03
【问题描述】:

我得到了新的 android studio,在创建一个新的空白活动时我注意到了一件事。

与活动的java相对应的布局被制作了两次,一次作为content

这个新布局是常规activity_menu.xml 的精确复制品,除了这个名为content_menu.xml。我在activity_menu.xml的布局代码中也注意到了这段代码:

    <include layout="@layout/content_menu" />

这个额外的布局有什么意义?我可以删除它吗?我在官方文档上找到了this,但我还是不明白为什么需要。这在第一次更新中没有...

【问题讨论】:

  • 这是activity_main.xml 的文件夹吗?我认为布局文件夹中的子文件夹不好
  • @cricket_007 我只是把它们放在所有屏幕的最佳布局中......我不应该这样做
  • 只有当你做对了 - stackoverflow.com/questions/4930398/…

标签: java android xml android-layout android-studio


【解决方案1】:

这里的content_menu 只是您的xml 布局内容的名称。不要对此感到困惑。正如您在菜单活动中看到的那样,您将看到 setContentView(R.layout.activity_menu)

这里 Activity 被告知其布局是 activity_menu.xml 中的内容,但在这个 (activity_menu.xml) 文件中,您会看到一个包含标记。 include标签意味着另一个名为content_menu.xmlxml文件中的内容必须包含在当前布局中使用include标签的地方。因此,如果要更改内部内容,您可以将所有内容保留在 activity_menu.xml 中,然后在 content_menu.xml 中进行更改,这将在您的设计中显示。

如果您不想要 content_menu.xml 文件,您可以将该文件中的所有内容复制到 activity_menu.xml 以代替 &lt;include &gt; tag 并删除 content_menu.xml 文件。

【讨论】:

  • 哦,这更有意义。这有什么意义呢?一旦我得到它,我会标记你的最佳答案!
  • 有很多原因 1. 将“工具栏”或“FAB(浮动操作按钮)”等常用设计部分与您的主要内容分开。 2.如果多个activity具有相同的内容或相似的布局,使代码可重用,这个原因是最重要的一个。 3. 增加代码的健壮性和可读性。
  • 好吧,在第二个中你提到了可重用性。我们如何重用布局,为什么不只使用片段?另外,可以去掉content吗?
  • 不,“片段”是一个拥有自己完整生命周期的类,它使用与“活动”相同的系统资源并完成 ui 组件的动态包含工作,因此它有自己的自己的目的,而这里的“content.xml”只是一个静态 xml 文件,可以静态添加到任何地方,不一定在运行时修改。是的,如果您只想将您的 ui 代码放入“activity_yourfilename.xml”中,您可以删除内容文件。
【解决方案2】:

例如,假设您想在其他地方重用 content_menu.xml 内容,在这种情况下,在其他活动中,您将在 xml 文件中执行相同的包含语句。关键是您正在重用相同的 xml 并减少内容的数量。

【讨论】:

  • 为什么不再次膨胀菜单?
  • @RuchirBaronia - 你不会膨胀content_menu。假设您在activity_menu.xmlfragment_menu.xml 中包含content_menu。你会为后者充气。
  • ...我现在真的迷路了。 content 的意义何在?为什么我们需要重用它?是性能原因还是什么?我什至不知道content 是什么,更不用说如何充气了...谢谢
  • @RuchirBaronia - 基本上你可以删除content,只要你用content的完整内容替换activity的XML中的include
  • @RuchirBaronia - 完全拥有contentinclude-ing 的目的是,它可以在其他菜单的其他地方重复使用。假设您在 content 中有一个“退出应用程序”菜单项,那么您可以在所有其他菜单中 include 该菜单项,而无需在所有其他菜单中重新键入它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
相关资源
最近更新 更多