首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何组合与自定义JPanel (AKA视图)等价的安卓系统

如何组合与自定义JPanel (AKA视图)等价的安卓系统
EN

Stack Overflow用户
提问于 2013-06-20 00:16:31
回答 1查看 1.2K关注 0票数 0

我正在尝试创建一个真正涉及到的UI,用于集成一个专有产品(目前它是基于web的,是一个完全的黑客)。每个屏幕/视图具有相同的外观和感觉,同样的2-3个按钮在每个页面上相同的位置。这仅仅是显示变化的一部分。

如果这是swing,我将定义一个JPanel,组成除了这个中心组件之外的所有东西,然后创建该面板的实例,为每个实例提供不同的字段。

我想将这个UI流的90%的公共部分表示为一个单一视图,只需填充一些空白。

我能这么做吗?我该怎么做?请不要恨我。Android新手(不过是经验丰富的Java兽医)

EN

回答 1

Stack Overflow用户

发布于 2013-06-20 00:29:38

我能这么做吗?

好的!然而,我不认为它是一个“完全Android新手”的问题,就像在那个环境中它不会是一个“完全摇摆新手”的问题一样。

我该怎么做?

有几种可能的方法。最简单的解决方案是定义一个定义整个UI的布局资源文件,使用一个FrameLayout作为占位符,其中“一些空白”将最终消失。然后,在运行时,当您使用该布局时,您将“填充空白”,方法是在该FrameLayout中添加一些内容。

  • 如果您希望每个“屏幕/视图”都是一个Activity,您可以在setContentView()中使用前面提到的布局文件,然后手动充气(或者在setContentView()中直接实例化),不管“一些空白”是什么。您可以在addView()上调用FrameLayout,以“填空”任何您所膨胀的内容。如果您愿意的话,大部分逻辑可以打包到一个基类中,子类覆盖一些gimmeTheBlanksPlease()方法,这些方法提供了要注入到FrameLayout中的内容。
  • 如果您希望每个“屏幕/视图”都是一个Fragment,您可以在onCreateView()中使用前面提到的布局文件,然后手动充气(或者在onCreateView()中直接实例化),不管“一些空白”是什么。再一次,您将通过FrameLayout通过addView()将这些内容注入其中,并且可以再次在抽象基类中实现该代码的大部分。

还有更复杂的解决方案(例如,自定义ViewGroup)。

唯一简单的解决方案是,如果可以在~1布局文件中定义“此UI流的90%公共部分”,则可以使用<include>标记来组合布局。您将有一个带有公共元素的公共布局,这些元素将被包含在per“屏幕/视图”布局中,并在运行时使用。同样,您可能有一个抽象的基础ActivityFragment,它知道一些常见的东西。但是,如果"90%“最终被分配到一堆布局文件中,这会变得很麻烦,这仅仅是因为XML和定位是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17203423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档