各大互联网公司Android应用中TabHost的使用
NO:编号。
ApkName:应用的名称。
IsTabHost:APK的主界面是否是用TabHost搭建。
点击时响应:点击下方时的按钮时,转换的界面是在内转换,还是重新跳出一个Activity。
FileName:TabHost或者下方按钮的主要组成。
Remark:备注
NO | ApkName | IsTabHost | 点击时响应 | FileName | Remark |
1 | 百度新闻 | No | 内部 | main.xml | 使用自定义的com.baidu.news.ui.main.TabBar,猜测与tabbar.xml和 tabbarbutton.xml相关。比较神秘,需要查看源码。 |
2 | 点点轻博客 | Yes | 内部 | diandian_activity.xml、main_activity.xml notice_activity.xml、register_tabactivity.xml | 主界面使用原生的Tabhost。内部嵌套使用RadioGroup加RadioButton。 |
3 | 墨迹天气 | Yes | 内部 | layout_tab_selector.xml | TabHost嵌套RadioButton。 |
4 | PPTV | Have | 内部 | bottom_bar.xml | bottom_bar.xml使用了com.pplive.androidphone.layout.BottomBar以及bottom_bar_button.xml组成底部按钮,在首页显示的页面全部引入bottom_bar.xml, 使用比较繁琐。 |
5 | 奇艺视频 | Have | 内部 | 1、main_phone_navi.xml 2、phone_inc_ads.xml | 主界面main_phone.xml引用了main_phone_navi.xml,而其使用了和RelativeLayout 以及ImageView组成了底部按钮界面。 phone_inc_ads.xml使用了原生的Tabhost。 |
6 | QQ空间 | Have | 内部 | 1、tab.xml 2、tabframelayout.xml | 主界面tab.xml使用了FrameLayout和ImageView构成底部按钮,同时在主页中的每个 页面都引入Tab.xml。这种方式与PPTV相同。 tabframelayout.xml使用了Tabhost |
7 | 腾讯微博 | Yes | 内部 | microblog_tab.xml | 使用了Tabhost,同时TabWidget设置为gone,使用ImageView和TextView 自定义了按钮 |
8 | 人人客户端 | Have | 内部 | yl_tab.xml | 人人网使用了抽屉效果。但是其部分内容也使用了Tabhost |
9 | 新浪微博 | Yes | 内部 | maintabs.xml | 使用了Tabhost,同时内部使用了com.sina.weibo.view.TabView按钮 |
10 | 搜狐新闻 | No | 内部 | news_tab_layout.xml | 使用了ImageView和TextView组成按钮。比较神秘,需要查看源码。 |
11 | 网易新闻 | Yes | 内部 | TabHost | 大量使用了TabHost,同时使用了com.netease.newsreader.view.MyTabWidget 自定义组件 |
12 | 我查查 | No | 内部 | main.xml | 使用了com.wochacha.util.ImageTextView |
13 | 新浪新闻 | Yes | 内部 | maintabs.xml | 使用了Tabhost,同时内部使用了com.sina.weibo.view.TabView按钮 |
从这张表当中看出,13个主流的应用当中只有3个完全没有是用TabHost,剩下的10个应用中4个部分使用了Tabhost,而剩下了6个完全使用了Tabhost进行布局。
坊间关于不建议使用Tabhost布局的传说,不攻自破!!!