【问题标题】:android - include layout or fragmentandroid - 包括布局或片段
【发布时间】:2012-09-19 08:33:10
【问题描述】:

假设我有一个类 TitleBar,它调用 title_bar.xml 布局文件。一些 TextViews 设置在 TitleBar.java 文件中,因此 title_bar.xml 依赖于它。包含此布局文件的最简单方法是什么?显然,仅使用 include layout 不会完成这项工作。在这种情况下我应该使用片段吗?我更喜欢使用include,但我就是不知道如何调用代码隐藏文件?

希望我的问题足够清楚。

谢谢

编辑: 目前,TitleBar 是一个活动。我应该将其更改为其他内容吗?

编辑 2: 让我尝试以不同的方式提问:我有 MainActivity 和 activity_main.xml 文件。如何在 activity_main.xml 中包含新布局文件 (title_bar.xml) 并将 TitleBar.java 类与这个新视图相关联? TitleBar.java 应该是什么样子?我也应该将其创建为活动吗?

【问题讨论】:

    标签: java android layout include fragment


    【解决方案1】:

    您只需要布局文件或 TitleBar 功能? 为什么不在布局中使用<path.to.your.TitleBar/>?从 View 扩展 TitleBar 是合乎逻辑的。

    其他选项包括在您想要标题栏的位置(您想要包含的位置)放置一个空容器。例如<LinearLayout android:id="@+id/toolbarWillBeHere",当合适的时间到来时(例如在您的活动 onCreate 中),只需找到该容器并将您的工具栏放入其中

    【讨论】:

    • 我两者都需要。这是可重复使用的布局
    • 我编辑了我的问题:目前,TitleBar 是一项活动。我应该将其更改为其他内容吗?
    【解决方案2】:

    你要找的东西在这里:http://developer.android.com/guide/topics/ui/custom-components.html

    基本上,您可以使用以下方式在 xml 中添加视图/布局:

    <com.your.package.name.TitleBar
      id="@+id/titleBar"
      ... />
    

    【讨论】:

      【解决方案3】:

      只需including the layout 就可以完成这项工作。

      一旦你的布局附加到你的layout xml file,它就会成为你布局文件的一部分,然后你可以使用findViewByID来获取你想要的View.的对象

      【讨论】:

      • 是的,但是我在 TitleBar 中的所有代码都必须复制/粘贴到调用此布局的 Activity 中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2017-04-15
      相关资源
      最近更新 更多