Android 操作栏自定义

6

我的应用正在使用Sherlock Action Bar。

我的设计师给了我一个新的设计。

  1. 应用程序徽标需要在中间
  2. 2个操作项位于标志的左侧,另外2个操作项位于其右侧
  3. 应用程序徽标高度为ActionBar的1.5倍(应该有一点溢出)

是否可以创建自定义布局来实现此设计?

还是应该删除Action Bar并自己实现设计?

如果第3项是可选的,这是否会改变您的答案?

谢谢


1
Android用户会很生气,如果他们的应用看起来像iOS应用...在尝试实现这个设计之前(完全忽略了Android设计指南),你应该先警告你的设计师,用户可能对应用程序的外观不太满意。 - Alex Lockwood
5个回答

38

很抱歉,但是请让你的设计师离开...

他完全不了解Android,不应该为Android进行设计。如果它是一个ActionBar,则应该将其视为这样,并且您(或您的设计师)应该遵循Android上的常见模式; 如果不是,请不要使用ActionBar(无论使用哪个库),并创建一个与ActionBar有足够差别的自定义设计,以避免混淆用户!


11
实际上我认为这位设计师在设计iOS应用程序方面非常擅长。这里所描述的内容与UINavigationBar的渲染完全相似 :D。 - Cyril Mottier

3
请将您的设计师和经理转到 Android 设计模式网站 http://developer.android.com/design/patterns/actionbar.html。同时告诉他们,如果他们想要被 Google 特别推荐,就必须严格遵循这些模式。如果所有尝试都失败了,请使用全屏布局并在顶部创建自定义控件。

2

我同意其他答案:按照Android准则,这不是一个操作栏。

如果你不能反对设计决策(是的,现实世界中有时候很糟糕,作为程序员,你必须按照客户要求去做),我建议采用自己的实现方法。我建议创建一个带有适当侦听器接口的片段(这是一种常见的Android模式,让活动实现接口,在onAttach中设置片段的侦听器)。


1

如果你想要实现这个功能(我完全同意其他人的观点,这是非标准的,可能不应该这么做)。

由于您的界面是非标准的,因此您将无法使用标准API(或ActionBarSherlock)创建此样式的ActionBar。

您可以创建一个RelativeLayout,把您的图标放在中心(centerInParent="true")。接着在相同的布局中,您可以创建一个背景,将宽度设置为“fill_parent”,高度设置为中心图标大小的2/3(按DP计算)。

然后,您可以为左侧和右侧的2个ActionItems创建ImageButtons,然后将它们相对于中心图标放置在您的布局中。

总之,您可能应该重新考虑您的UI,使其更符合Android指定的设计模式。如果您仍然希望按照设计师的要求进行操作,那么您将需要进行自定义布局(如我建议的使用RelativeLayout来完成您所需的UI)。


-1
你可以创建一个RelativeLayout,将你的图标放在中心位置。
centerInParent="true"

然后在相同的布局中,您可以创建一个背景,将宽度设置为fill_parent,高度设置为中心图标大小的2/3(以DP计算此值)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接