» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

三棒也有被苹果借鉴的创新。

引用:
原帖由 kpf190 于 2014-6-2 20:03 发表

魅族的flyme系统从一开始就通过smartbar提供了单手操作的巨大便利性
仍旧不支持的App只能说没有按照android4.0规范开发
我觉得魅族的想法就是单纯的模仿苹果想只用一个按键,没想到骑虎难下(煤油手下留情)。

根本原因在于不使用 Android 标准控件 ≠ 不符合 Android Design,但只有使用了 Android 标准控件才能被 Smart Bar兼容。这就是SmartBar的问题所在。

转知乎一篇文章,图就不传了。

http://www.zhihu.com/topic/19792095/newest

在 Flyme 2.0 刚刚出来的时候,魅族低估了(也有可能是曲解了)Android Design 的复杂度和多样性,认为 Android Design 一定会有底栏(Split Action Bar),底栏上只能放图标,于是做出了这样的 Smartbar。

但是,一个 Android 应用并不一定要使用 Split Action Bar ,事实上,随着 Drawer 的广泛应用,用 Split Action Bar 的应用实际上越来越少了。同时,Split Action Bar 上放的也不一定是图标,可以放其他控件,一旦放了其他控件,返回键被硬性加入后,布局可能会出现混乱,某些情况下还会出现挡住其他控件的现象,不仅如此,一旦开发者用了自定义的控件,能不能兼容就不是魅族说了算的了。

要想一个应用兼容 Smartbar(即返回键可以融入应用而不会出现双底栏),需要满足以下两个条件之一:

1.程序使用了标准的 Action Bar
2.程序做特别处理

这和是否遵循 Android Design 关系几乎没有,硬说的话,用 Android 原生标准控件的应用,只要你有标准的底栏(准确的说是 Split Action Bar ),一定兼容 Smartbar ,也就这样子了。

其实,Smart Bar 与其说是一个伟大的创新,倒不如说是为魅族坚持只有一个 home 键而做的无奈的妥协,的确他在有些时候很好用,但是大多数时候,我还是愿意选择类似 MX 的做法,或者类似 nexus 的做法。

虽然越来越多的应用,兼容了 SmartBar ,但是实际上,这是开发者为魅族的错误买单,虽然由于买单的成本不算高,很多开发者做了,但是这并不是为魅族开脱的借口,Flyme 是基于 Android 的,而不是一个独立的操作系统,魅族在这上面,并没有话语权。

你永远不会知道接下来会怎样,所以,不要基于目前的现状自作聪明,除非,你能控制它。

一、为什么微信 5.2 不兼容 Smart Bar ?
二、为什么腾讯要这么做?
让我们开始吧。
=======
一、为什么微信 5.2 不兼容 Smart Bar ?
题主所说的 “不兼容 Smart Bar" ,应该就是指位于Action Bar 右上角的 Overflow 键没有被吸收到 Smart Bar 中的现象。
究其原因,就是微信 5.2 并没有使用标准的 Action Bar Overflow 控件。
在下面的截图中就很容易看出区别:

可以很明显地看出,虽然视觉效果相近,但是微信 5.2 上的 Action Bar Overflow 和左边的两个图标有本质上的区别。
非标准 Android 控件不能被 Smart Bar 吸收,自然就是所谓的”不兼容“ 了。
=======
二、为什么腾讯要这么做?
这部分开始为本人的推测。
要说明这个问题,有些复杂,恐怕得从 Action Bar Overflow 的源头说起……
我们知道,在 Android 2.x 时代,Android 的自带按键有四个。
而第二个是本次的主角,菜单 (menu) 键。
而从 Android 4.0 (Icecream Sandwich) 开始,众所周知地,实体键被Navigation Bar (导航条,也就是虚拟键) 取代,原来的菜单键不复存在。
而与菜单键相似的功能就被 Action Bar Overflow 取代,如下图。
图中的 (3) 是 Action Bar Button,放置最常用的功能,而剩下的就被塞入(4) Action Bar Overflow。
这样的设计带来了一个可见性的问题:
在原来就带有实体键的设备(如三星、小米的大部分机型)上,Action Bar Overflow 默认不显示,而只在具有 Navigation Bar 的设备上才会显示。
这样一来,在带实体键的设备上,用户很难知道哪一页有”菜单“(其实是Action Bar Overflow中的功能),而哪些没有。我就曾经面对着一个应用好几个月才知道它原来是有菜单的……
当然,Google 在 Android 4.4 中终于解决了这个问题,无论设备是否带有实体键,Action Bar Overflow 都会强制显示。可 Android 4.4 的份额现在几乎可以忽略不计,不是么?
大概是因为这次腾讯在Action Bar Overflow中放了很多重要功能,所以为了防止这三个点的Action Bar Overflow 被系统吞掉,腾讯在这次的微信里想了个办法,就是把它设计成非标准Android控件,增强可见性。
=======
至此,可以看出,腾讯的这个想法出发点是好的,就是让这个“菜单”在任何情况下都清晰可见。
然而 Smart Bar 的不灵活最终导致其不被兼容。
毕竟不使用 Android 标准控件 ≠ 不符合 Android Design,但只有使用了 Android 标准控件才能被 Smart Bar兼容。这与 Smart Bar 的初衷可谓相差甚远。
结论:Smart Bar 从来就没有 smart 过,随着 Android Design 的发展,它只会变得原来越 stupid 。


TOP

发新话题
     
官方公众号及微博