我正在尝试创建一个真正涉及到的UI,用于集成一个专有产品(目前它是基于web的,是一个完全的黑客)。每个屏幕/视图具有相同的外观和感觉,同样的2-3个按钮在每个页面上相同的位置。这仅仅是显示变化的一部分。
如果这是swing,我将定义一个JPanel,组成除了这个中心组件之外的所有东西,然后创建该面板的实例,为每个实例提供不同的字段。
我想将这个UI流的90%的公共部分表示为一个单一视图,只需填充一些空白。
我能这么做吗?我该怎么做?请不要恨我。Android新手(不过是经验丰富的Java兽医)
发布于 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“屏幕/视图”布局中,并在运行时使用。同样,您可能有一个抽象的基础Activity或Fragment,它知道一些常见的东西。但是,如果"90%“最终被分配到一堆布局文件中,这会变得很麻烦,这仅仅是因为XML和定位是如何工作的。
https://stackoverflow.com/questions/17203423
复制相似问题