Java 如何构建Android版的定制JPanel(又名视图)
我正在尝试创建一个真正涉及到的UI,以便与专有产品集成(目前它是基于web的,完全是一种黑客行为)。每个屏幕/视图都有相同的外观和感觉,在每个页面的相同位置都有相同的2-3个按钮。这只是显示变化的一部分 如果这是swing,我将定义一个JPanel,组成除此中心组件以外的所有组件,然后创建所述面板的实例,为每个实例提供不同的字段 我想将这个UI流中90%的公共部分表示为一个视图,并只填充一些空白 我可以这样做吗?我该怎么做?请不要仇恨。Android新手总数(尽管是经验丰富的Java老手) 我可以这样做吗 当然!然而,我不会将其描述为“完全的Android新手”类型的问题,就像在那种环境中它不会是“完全的Swing新手”类型的问题一样 我该怎么做 有几种可能的方法。最简单的解决方案是定义一个布局资源文件,该文件定义了整个UI,并使用Java 如何构建Android版的定制JPanel(又名视图),java,android,swing,user-interface,Java,Android,Swing,User Interface,我正在尝试创建一个真正涉及到的UI,以便与专有产品集成(目前它是基于web的,完全是一种黑客行为)。每个屏幕/视图都有相同的外观和感觉,在每个页面的相同位置都有相同的2-3个按钮。这只是显示变化的一部分 如果这是swing,我将定义一个JPanel,组成除此中心组件以外的所有组件,然后创建所述面板的实例,为每个实例提供不同的字段 我想将这个UI流中90%的公共部分表示为一个视图,并只填充一些空白 我可以这样做吗?我该怎么做?请不要仇恨。Android新手总数(尽管是经验丰富的Java老手) 我可
FrameLayout
作为占位符,“一些空格”最终将出现在其中。然后,在运行时,当您使用该布局时,您可以通过在框架布局中放入一些内容来“填充空白”:
- 如果您希望每个“屏幕/视图”都是一个
活动
,您可以在setContentView()
中使用前面提到的布局文件,然后手动膨胀(或直接在Java中实例化)任何“空白”。您可以在FrameLayout
上调用addView()
,以“填充空白”。如果需要,大多数逻辑可以捆绑在基类中,子类覆盖一些gimmetheblanksplese()
方法,该方法提供要注入FrameLayout
的内容
- 如果您希望每个“屏幕/视图”都是一个
片段
,您可以在onCreateView()
中使用前面提到的布局文件,然后手动膨胀(或直接在Java中实例化)任何“空白”。同样,您可以通过addView()
将这些内容注入到FrameLayout
中,并且这种代码的大部分可以在抽象基类中实现
还有更复杂的解决方案(例如,自定义ViewGroup
)
唯一简单的解决方案是,如果可以在~1布局文件中定义“此UI流的90%公共部分”,则可以使用
标记来组合布局。您将拥有一个带有公共元素的公共布局,该布局将包含在每个“屏幕/视图”布局中,并在运行时使用。同样,您可能有一个抽象的基础活动
或片段
,了解常见的东西。然而,如果“90%”最终被分割到一整堆布局文件中,这会变得很混乱,因为XML和定位是如何工作的