自定义底部菜单栏
系统自带的菜单栏缺陷:一个页面最多只能显示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;
}
}
});
分享到:
相关推荐
4. `components` 文件夹:自定义底部导航栏组件的源码。 5. `static` 文件夹:静态资源,如图片、样式表等。 6. `unpackage` 文件夹:编译后的输出文件。 7. `.gitignore`:指定Git忽略的文件和目录。 8. `project....
【uni-app小程序自定义底部菜单样式示例】 在uni-app框架中,开发微信小程序、支付宝小程序、H5等多端应用时,我们经常会遇到需要自定义底部导航菜单的需求,以实现更加个性化和一致性的用户体验。本示例将详细介绍...
本教程将深入探讨如何在Android项目中实现微信式的底部菜单栏和顶部菜单栏,提供良好的导航功能和用户体验。 首先,底部菜单栏是Android应用中常见的组件,它通常包含3到5个图标,每个图标对应一个主要的功能模块。...
本资源提供了Android仿微信底部菜单栏及顶部菜单栏的源码,非常适合开发者进行参考和学习。 首先,底部菜单栏(Bottom Navigation Bar)是Android应用中常用的一种导航模式,它通常包含3到5个主要功能图标,允许...
在Android应用开发中,设计一个类似新浪微博的底部菜单栏是常见的需求,这涉及到对Fragment和FragmentTabHost的熟练运用。本文将深入解析如何利用这两个组件来实现这一功能,并提供源码示例。 Fragment是Android ...
本教程将详细讲解两种实现Android底部菜单栏的方法,并提供完整的源码供参考。 一、通过TabWidget实现底部菜单栏 TabWidget是Android SDK中的一个控件,它允许在界面上创建一个可滚动的标签页。以下是如何使用...
该源码支持实现支持底部菜单切换效果源码,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页,MainFragment 和LoginActivity 都为它的子fragment.底部菜单用的是一个...
在Android应用开发中,底部菜单栏(Bottom Navigation Bar)是一种常见的界面设计,它提供了一种高效的方式让用户在多个主要功能之间快速切换。本教程将详细解释如何通过两种方法实现这样的效果,同时也涉及到Tab...
在Android应用开发中,创建一个类似QQ空间底部菜单栏的效果是一项常见的需求,它能提供便捷的导航和操作入口。本文将详细讲解如何利用`Fragment`和`PopupWindow`实现这一功能,同时结合提供的源码和效果图,帮助你...
在移动应用设计中,侧滑栏(Drawer)和底部菜单(Tab Bar)是常见的导航模式,它们为用户提供直观且易用的界面交互。本资源提供的是一个模仿oschina应用程序的侧滑栏和底部菜单的源代码实现,适用于Android平台。...
这篇博客"Android--底部菜单栏实现"可能详细介绍了如何在Android项目中实现这样的功能。由于没有直接提供博客的具体内容,我会根据通常的实现方法来讲解这一主题。 首先,底部菜单栏的实现通常涉及到`Bottom...
在"html5+css3仿微信底部菜单(可自定义).html"文件中,开发者很可能会使用到以上提到的HTML5和CSS3特性。具体实现可能包括以下几个步骤: 1. 使用元素创建底部导航容器,并通过CSS设置其布局样式,如宽度、高度、...
在Android应用开发中,微信的底部菜单栏是一个常见的设计元素,它为用户提供了一种直观的导航方式。这个项目是关于如何在自己的Android应用中实现一个类似微信的底部菜单栏,并且能够显示未读消息的数量。下面我们将...
在Android中实现两种主要的Tab效果:... 仿微信底部菜单;2. 仿今日头条顶部导航条。博客讲解见:https://blog.csdn.net/ahuyangdong/article/details/82493158。github源码:https://github.com/ahuyangdong/TabCustom
这个“安卓仿微信底部菜单源码”项目旨在帮助开发者实现类似微信底部导航栏的功能,包括菜单项的图片切换、文字颜色变换以及Activity之间的跳转。下面我们将详细探讨这一主题。 首先,底部菜单通常由多个图标和文字...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
例如,`<nav>`元素用于定义导航链接,这正是底部菜单的理想选择。一个简单的底部菜单HTML结构可能如下: ```html <li><a href="#home">首页</a></li> <li><a href="#about">关于我们</a></li> <li><a href="#...
从多级选择器到自定义导航栏,再到二维码生成器,UniApp的控件封装合集为开发者提供了极大的便利。 面向未来,UniApp将继续优化性能,拓展功能,满足更多开发者的需求。如果你正在寻找一个高效、便捷的跨平台开发...
本资源提供的"仿京东商城Android客户端底部菜单源码"是一个针对Android平台的高度仿制京东商城底部菜单的实现,旨在帮助开发者快速构建具有类似功能的应用。 首先,我们需要理解底部菜单(Bottom Navigation)在...