`
lifeijiyuan
  • 浏览: 40393 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义底部菜单栏(附源码)

 
阅读更多
自定义底部菜单栏
    系统自带的菜单栏缺陷:一个页面最多只能显示6个菜单项;不能设置menu的背景色和单击变成自己希望背景色;因为系统自带显示单一,所以那么就来自定义自己的菜单栏吧,让你的菜单栏更漂亮。


3、核心代码:学会了这些你就可以摆脱系统单一的菜单栏了,那么你就可以随心所欲的写自己绚丽的菜单了。
第一、自定义的menu其实没用到menu控件,完全是自定义的类似菜单那样的布局,menu.xml就免写了。
第二、关键是前台代码:
(1)自定义的菜单栏其实是当前按手机上的菜单键,弹出一个菜单窗口,当按手机上的退回键的时候,就让该窗口关闭,那怎么实现呢?

首先,在onKeyDown里面捕获menu,找到所要弹出的窗口布局,
public boolean onKeyDown(int keyCode, KeyEvent msg) {
if(keyCode==KeyEvent.KEYCODE_MENU)
{
/通过View.inflate加载xml
inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
layout = inflater.inflate(R.layout.main,null);
pop = new PopupWindow(layout,480,350);//获取PopupWindow对象并设置窗体的大小
pop.showAtLocation(layout, Gravity.CENTER,20,470); //设置窗体的位置
pop.showAsDropDown(layout);          //弹出menu窗口              

其次:那怎么弹出窗口已经找到了,那怎么找到弹出窗口上的控件呢?如下代码:
home=(LinearLayout)layout.findViewById(R.id.home);
找到了弹出窗口id名为home的LinearLayout,找到了控件,那我们就可以对这些控件写事件了,
可以对该LinearLayout设置背景,这里遇到一个问题,就是之前我们是可以用xml写代码直接控制
LinearLayout单击时的背景颜色,当单击过后是另外一种颜色,但是通过inflate加载的xml,在xml上
设置样式,根本就不起作用,这是自己总结出来的。
那我们该怎么写”LinearLayout单击时的背景颜色,当单击过后是另外一种颜色“呢?代码如下:
home.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub       
//单击时,可通过设置IsShow的boolean值,使得单击时是一种颜色,单击过后恢复单击前的颜色,不这么设置就会导致,当你单击了和单击后都会一直显示单击时的背景  色,不会有颜色变化。       
if(IsShow==true)
{

   home.setBackgroundResource(R.drawable.tab_two_highlight);//变色

    //以下的背景色和和单击前颜色一样维持不变,是为了保持当单击一个LinearLayout的时候,其他的会变颜色,如果不这么写,会有一系列效果显示问题。
publish.setBackgroundResource(R.drawable.tab_one_normal);
    change.setBackgroundResource(R.drawable.tab_one_normal);
more.setBackgroundResource(R.drawable.tab_one_normal);                               
IsShow=false;
}
//单击过后
else
{
home.setBackgroundResource(R.drawable.tab_one_normal);
publish.setBackgroundResource(R.drawable.tab_one_normal);
change.setBackgroundResource(R.drawable.tab_one_normal);
more.setBackgroundResource(R.drawable.tab_one_normal);                                       
IsShow=true;
}
}
});
分享到:
评论

相关推荐

    uni-app 自定义底部导航栏uni-app-bottom-navigation-master.zip

    4. `components` 文件夹:自定义底部导航栏组件的源码。 5. `static` 文件夹:静态资源,如图片、样式表等。 6. `unpackage` 文件夹:编译后的输出文件。 7. `.gitignore`:指定Git忽略的文件和目录。 8. `project....

    uni-app-小程序自定义底部菜单样式示例

    【uni-app小程序自定义底部菜单样式示例】 在uni-app框架中,开发微信小程序、支付宝小程序、H5等多端应用时,我们经常会遇到需要自定义底部导航菜单的需求,以实现更加个性化和一致性的用户体验。本示例将详细介绍...

    Android仿微信底部菜单栏+顶部菜单栏(附源码)

    本教程将深入探讨如何在Android项目中实现微信式的底部菜单栏和顶部菜单栏,提供良好的导航功能和用户体验。 首先,底部菜单栏是Android应用中常见的组件,它通常包含3到5个图标,每个图标对应一个主要的功能模块。...

    Android仿微信底部菜单栏+顶部菜单栏(源码)

    本资源提供了Android仿微信底部菜单栏及顶部菜单栏的源码,非常适合开发者进行参考和学习。 首先,底部菜单栏(Bottom Navigation Bar)是Android应用中常用的一种导航模式,它通常包含3到5个主要功能图标,允许...

    Fragment+FragmentTabHost实现仿新浪微博底部菜单栏效果(源码)

    在Android应用开发中,设计一个类似新浪微博的底部菜单栏是常见的需求,这涉及到对Fragment和FragmentTabHost的熟练运用。本文将深入解析如何利用这两个组件来实现这一功能,并提供源码示例。 Fragment是Android ...

    Android底部菜单栏的两种实现方式demo 附完整源码.rar

    本教程将详细讲解两种实现Android底部菜单栏的方法,并提供完整的源码供参考。 一、通过TabWidget实现底部菜单栏 TabWidget是Android SDK中的一个控件,它允许在界面上创建一个可滚动的标签页。以下是如何使用...

    底部菜单切换效果源码.zip

    该源码支持实现支持底部菜单切换效果源码,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页,MainFragment 和LoginActivity 都为它的子fragment.底部菜单用的是一个...

    实现Android底部菜单栏效果(源码)

    在Android应用开发中,底部菜单栏(Bottom Navigation Bar)是一种常见的界面设计,它提供了一种高效的方式让用户在多个主要功能之间快速切换。本教程将详细解释如何通过两种方法实现这样的效果,同时也涉及到Tab...

    Fragment+PopupWindow完美实现了仿QQ空间底部菜单栏效果(源码+效果图)

    在Android应用开发中,创建一个类似QQ空间底部菜单栏的效果是一项常见的需求,它能提供便捷的导航和操作入口。本文将详细讲解如何利用`Fragment`和`PopupWindow`实现这一功能,同时结合提供的源码和效果图,帮助你...

    侧滑栏和底部菜单源码

    在移动应用设计中,侧滑栏(Drawer)和底部菜单(Tab Bar)是常见的导航模式,它们为用户提供直观且易用的界面交互。本资源提供的是一个模仿oschina应用程序的侧滑栏和底部菜单的源代码实现,适用于Android平台。...

    Android--底部菜单栏实现

    这篇博客"Android--底部菜单栏实现"可能详细介绍了如何在Android项目中实现这样的功能。由于没有直接提供博客的具体内容,我会根据通常的实现方法来讲解这一主题。 首先,底部菜单栏的实现通常涉及到`Bottom...

    html5+css3仿微信底部菜单(可自定义)

    在"html5+css3仿微信底部菜单(可自定义).html"文件中,开发者很可能会使用到以上提到的HTML5和CSS3特性。具体实现可能包括以下几个步骤: 1. 使用元素创建底部导航容器,并通过CSS设置其布局样式,如宽度、高度、...

    Android 仿微信底部菜单栏 + 显示未读消息数量

    在Android应用开发中,微信的底部菜单栏是一个常见的设计元素,它为用户提供了一种直观的导航方式。这个项目是关于如何在自己的Android应用中实现一个类似微信的底部菜单栏,并且能够显示未读消息的数量。下面我们将...

    Android仿微信底部菜单栏+今日头条顶部导航栏

    在Android中实现两种主要的Tab效果:... 仿微信底部菜单;2. 仿今日头条顶部导航条。博客讲解见:https://blog.csdn.net/ahuyangdong/article/details/82493158。github源码:https://github.com/ahuyangdong/TabCustom

    安卓仿微信底部菜单源码

    这个“安卓仿微信底部菜单源码”项目旨在帮助开发者实现类似微信底部导航栏的功能,包括菜单项的图片切换、文字颜色变换以及Activity之间的跳转。下面我们将详细探讨这一主题。 首先,底部菜单通常由多个图标和文字...

    微信小程序源码 自定义tabbar(源码+截图).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    HTML5手机底部菜单

    例如,`<nav>`元素用于定义导航链接,这正是底部菜单的理想选择。一个简单的底部菜单HTML结构可能如下: ```html <li><a href="#home">首页</a></li> <li><a href="#about">关于我们</a></li> <li><a href="#...

    uniapp框架-uni-app自定义底部导航栏-uni-app项目源码-vue语法格式.zip

    从多级选择器到自定义导航栏,再到二维码生成器,UniApp的控件封装合集为开发者提供了极大的便利。 面向未来,UniApp将继续优化性能,拓展功能,满足更多开发者的需求。如果你正在寻找一个高效、便捷的跨平台开发...

    仿京东商城Android客户端底部菜单源码

    本资源提供的"仿京东商城Android客户端底部菜单源码"是一个针对Android平台的高度仿制京东商城底部菜单的实现,旨在帮助开发者快速构建具有类似功能的应用。 首先,我们需要理解底部菜单(Bottom Navigation)在...

Global site tag (gtag.js) - Google Analytics