我有一个需要创建一个控制类似于 UITabBar 在iPhone,这是可以存在于每一项活动我的应用程序。UITabBar基本上是一个 电池的按钮 展示一个 像的行为:每一个按钮的地图,一项活动。

我有两个解决方案,为此:

  1. 在布XML对每一个活动,我插入一个 <LinearLayout><Button/><Button/><Button/></LinearLayout> 元素。然后有一个共同的听众类将处理的钮扣点击。因此,每一个活动将有一个实例,这监听器。

  2. 创建一个自定义部件延伸LinearLayout类,把所有的按钮作为其静态的成员,并让它处理的钮扣点击。包括这个定义控制在每一个屏幕。

我不确定哪种方法,以遵循。请的建议。替代方案还认识到

下面是什么我觉得有关上述办法:
该问题与第一种办法:

  1. 它会产生大量的样板代码(findViewByIds,setOnClickListener等)。

  2. 假设有5项活动,3项卡按钮,总数量按钮对象创造了在运行时将5×3=15

我想要第2种办法,因为:

  1. 所有代码(国家和行为)将包件类。小样的代码。

  2. 由于按钮将是静态的成员,总数量按钮物体在运行时创建的,将只有三个。虽然,静态的成员将保留在内存更长的时间(直到JVM卸类),由于控制是存在于每一个屏幕我想这是可以原谅的。

谢谢。

有帮助吗?

解决方案 2

不幸的是,我不能找到一种方法来定义的内在TabWidget,以使它看起来像UITabBar.因此,我要创造一个定制的控制和拥有的按钮作为静态的成员(采取第二种方法)。控制将处理的点击量如预期的那样。
我已经注意到获奖的砰砰技术应用时也有一个选项的控制,类似的iphone UITabBar.

其他提示

为什么不只是利用现有的TabWidget执行。

http://developer.android.com/guide/tutorials/views/hello-tabwidget.html

不仅是实现你自己的小工具的额外工作,很可能感觉出来的地方当与其他应用程序的平台。

特别是,这里的一些问题,我看到:

  1. 当看看标签栏的变化,由于一系统的更新,则必须重新编写代码。你也不太可能完全一致的外观和感觉建立在标签栏。(觉得Java在OS X)

  2. 用户每次点击上一个标签,这将增加另一项活动的堆。这不仅是一种废物的存储器,但是用户每次点击,背上的按钮的话,这将转到上一个标签。这不是标签栏是应该的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top