第一范文网 - 专业文章范例文档资料分享平台

android之官方导航栏ActionBar(三)之高仿优酷首页(烟台杰瑞教育Android培训部原创)

来源:用户分享 时间:2025/6/25 23:22:58 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

烟台杰瑞教育科技有限公司(Android开发培训部) 版权所有

android之官方导航栏ActionBar(三)之高仿优酷首页

一、问题概述 通过上两篇文章,我们对如何使用ActionBar大致都已经有了认识。在实际应用中,我们更多的是定制ActionBar,那么就需要我们重写或者定义一些样式来修饰ActionBar,来满足具体的需要。我们就以优酷首页为例,一起学习下ActionBar的综合应用。

二、Android系统ActionBar样式的定义 首先,我们先认识一下android系统中是如何定义ActionBar样式的,这里我们以Theme.Holo.Light主题为例,通过源码我们可以看到在该主题中关于ActionBar的样式定义如下:

在如上众多的属性中,需要我们重点关注的样式属性主要有如下几个:

1、actionBarStyle:该属性定义了ActionBar的主要样式,包括ActionBar背景、标题样式、分隔符等等。具体的属性如下:titleTextStyle、background、backgroundSplit、divider。在这里不在贴源码了,大家可自行查看。

2、actionBarSize:定义ActoinBar的高度

3、actionButtonStyle:用于定义Action item button的样式,主要属性有background、paddingStart、paddingEnd、minWidth等。

4、actionBarTabStyle:用于定义ActionBar上的Tabs的样式。 5、actionBarTabBarStyle:用于定义Tab下方细条的样式。 6、actionBarTabTextStyle:用于定义Tab上文字的样式。

三、案例实现 下面我们就结合之前的知识和上面的样式一步一步完成本文的案例,优酷首页。 首先,我们将标题隐藏并设置Logo,可通过代码进行设置,如下所示:

ActionBar actionbar= getActionBar(); actionbar.setDisplayUseLogoEnabled(true); actionbar.setDisplayShowTitleEnabled(false); actionbar.setDisplayShowHomeEnabled(true); actionbar.setDisplayHomeAsUpEnabled(false); actionbar.setLogo(R.drawable.icon_youku);

第二步按照上篇文章的步骤完成Tab导航的添加,在这里就不在贴代码了。

第三步编写menu文件,在这里大家要注意的是overflow区的菜单没法自定义布局,点击overflow溢出的菜单,我是使用了PopupWindow实现的。在PopupWindow中我添加了一个ListView,并为ListView添加了两种Item的布局文件,一个用于登陆菜单,一个用于其他的菜单。菜单文件如下文件具体如下:

------杰瑞教育(www.jerehedu.com ) 专注IT技能培训 打造一流人才服务平台------

烟台杰瑞教育科技有限公司(Android开发培训部) 版权所有

android:id=\

android:icon=\ android:showAsAction=\ android:title=\搜索\ />

android:id=\

android:icon=\ android:orderInCategory=\ android:showAsAction=\ android:title=\游戏\ />

android:id=\ android:icon=\ android:orderInCategory=\ android:showAsAction=\ android:title=\市场\ />

android:id=\ android:icon=\ android:orderInCategory=\ android:showAsAction=\ android:title=\更多\ />

菜单文件中,我们让所有的菜单项都显示到ActionBar上。 弹出PopuWindow菜单的方法如下:

public void showPopMenu(){ //获取状态栏高度

Rect frame = new Rect();

getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); //计算偏移量,50dp为我们设置的actionbar的高度,默认情况下Tab的高度和ActionBar是一致的

int offsetY=frame.top+getActionBar().getHeight()-dip2px(50); int offsetX=dip2px(10); View parentView =

LayoutInflater.from(this).inflate(R.layout.activity_main,null);

View popView = LayoutInflater.from(this).inflate(R.layout.pop_layout,null); ListView myList =(ListView)popView.findViewById(R.id.mylist); ListAdapter adapter = new ListAdapter(this,initListData());

------杰瑞教育(www.jerehedu.com ) 专注IT技能培训 打造一流人才服务平台------

android之官方导航栏ActionBar(三)之高仿优酷首页(烟台杰瑞教育Android培训部原创).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7uy8b44byn7yqpo85nf9_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top