Android自定义控件实现底部菜单(下)
作者:landptf 时间:2023-03-28 15:35:38
在app中经常会用到底部菜单的控件,每次都需要写好多代码,今天我们用到了前几篇博客里的控件来进一步封装底部菜单。先看效果图:
主要包括以下功能:
1 设置icon以及点击之后的icon
2 设置文字
3 设置文字颜色以及点击之后的文字颜色
4 设置未读数量、更多以及new
我们先看如何使用,然后再看如何实现的
1 在布局文件中引用MenuM
<com.landptf.view.MenuM
android:id="@+id/mm_bottom"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
landptf:backColor="@color/content"
landptf:textColor="@color/text"
landptf:textColorPress="@color/colorPrimary"
landptf:count="4"
/>
这里主要说一下count属性,表示菜单项的个数。
2 在Activity中初始化
final MenuM mmBottom = (MenuM) findViewById(R.id.mm_bottom);
mmBottom.setText(text);
mmBottom.setIconDrawable(iconDrawable);
mmBottom.setIconDrawablePress(iconDrawablePress);
//设置默认选中第一项
mmBottom.setPressState(0, MotionEvent.ACTION_DOWN);
mmBottom.setOnItemClickListener(new MenuM.OnItemClickListener() {
@Override
public void onItemClick(int position) {
Toast.makeText(MenuMTestActivity.this, mmBottom.getText(position), Toast.LENGTH_SHORT).show();
}
});
mmBottom.setUnReadCount(0, 100);
mmBottom.setUnReadCount(1, 15);
mmBottom.setVisibilityMore(2, View.VISIBLE);
mmBottom.setVisibilityNew(3, View.VISIBLE);
有以下几个全局变量
text = new String[]{"首页", "通讯录", "发现", "我"};
//为了演示方便我只找了两张icon,在实际开发中一般需要从网络上下载,然后在设置
Drawable drawable = getResources().getDrawable(R.drawable.icon_home_page);
Drawable drawablePress = getResources().getDrawable(R.drawable.icon_home_page_press);
iconDrawable = new Drawable[]{drawable, drawable, drawable, drawable};
iconDrawablePress = new Drawable[]{drawablePress, drawablePress, drawablePress, drawablePress};
来源:https://my.oschina.net/landptf/blog/825973
标签:Android,底部菜单
0
投稿
猜你喜欢
WinForm开发中屏蔽WebBrowser脚本错误提示的方法
2021-06-23 08:49:40
Java日常练习题,每天进步一点点(52)
2023-03-31 11:23:46
java基本教程之synchronized关键字 java多线程教程
2023-02-20 04:11:17
java多线程读写文件示例
2021-08-11 11:03:28
Java分布式服务框架Dubbo介绍
2022-09-16 01:27:53
java日期工具类实例分享
2023-05-17 17:50:40
RadioButton实现选择后可取消选择
2023-10-15 23:50:39
Spring Boot Redis 集成配置详解
2022-12-05 20:57:59
Java常用类String的面试题汇总(java面试题)
2023-11-23 20:40:45
Java多线程 Callable、Future 和FutureTask
2023-07-24 08:09:23
SpringCloud使用Feign实现服务调用
2021-11-10 05:19:20
Mybatis MapperScannerConfigurer自动扫描Mapper接口生成代理注入到Spring的方法
2023-04-17 11:57:25
新手Hadoop安装 环境搭建
2022-12-15 05:34:02
Unity 修改FBX模型动画的操作
2023-03-17 17:59:39
Android TabLayout(选项卡布局)简单用法实例分析
2023-12-17 09:52:28
Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程详解
2021-06-21 04:48:14
springBoot集成Elasticsearch 报错 Health check failed的解决
2022-12-07 05:18:16
Java List转换成String数组几种实现方式详解
2023-11-10 07:19:41
读写Android中assets目录下的文件的方法详解
2023-03-03 15:50:35
SpringBoot关于自定义注解实现接口幂等性方式
2023-09-27 14:03:42