我需要在 iPhone中创建一个类似于UITabBar的控件,该控件将出现在我的应用程序的每个活动中。UITabBar 本质上是一组按钮,表现出类似TAB的行为:每个按钮都映射到一个活动。
我有两个解决方案:
在每个活动的布局 XML 中,我插入一个
<LinearLayout><Button/><Button/><Button/></LinearLayout>
元素。然后有一个通用的监听器类来处理按钮的点击。所以,每个活动都会有一个这个监听器的实例。要创建一个扩展 LinearLayout 类的自定义 Widget,请将所有按钮作为其静态成员并让它处理按钮点击。在每个屏幕中都包含此自定义控件。
我不确定要遵循哪种方法。请指教。替代品也受到赞赏
以下是我对上述方法的看法:
第一种方法的问题:
它将生成大量样板代码(findViewByIds、setOnClickListener 等)
假设有 5 个活动和 3 个选项卡按钮,则在运行时创建的 Button 对象总数将为 5 x 3 = 15
我想采用第二种方法,因为:
所有代码(状态和行为)都将被小部件类封装。更少的样板代码。
由于按钮将是静态成员,因此在运行时创建的 Button 对象的总数将只有三个。虽然,静态成员将在内存中保留更长的时间(直到 JVM 卸载该类),因为控件存在于每个屏幕上,我认为这是可以原谅的。
谢谢。