继承LinearLayout自定义左侧菜单
public class LeftMenuView extends LinearLayout {
LinkedHashMap<Integer,String> map=new LinkedHashMap<>();
public LeftMenuView(Context context) {
super(context);
addView(context);
}
public LeftMenuView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
addView(context);
}
public LeftMenuView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
addView(context);
}
private void addView(final Context mContext) {
map.put(R.drawable.ico_left_menu_cashier,"收银");
map.put(R.drawable.ico_left_menu_order,"订单");
map.put(R.drawable.ico_left_menu_after_sales,"售后");
map.put(R.drawable.ico_left_menu_goods,"商品");
map.put(R.drawable.ico_left_menu_setting,"设置");
for (final Map.Entry<Integer, String> entry : map.entrySet()) {
TextView tvName=new TextView(mContext);
View viewLine=new View(mContext);
addView(tvName);
addView(viewLine);
LinearLayout.LayoutParams tvLayoutParams = (LayoutParams) tvName.getLayoutParams();
LinearLayout.LayoutParams viewLayoutParams = (LayoutParams) viewLine.getLayoutParams();
tvLayoutParams.width=LayoutParams.WRAP_CONTENT;
tvLayoutParams.height=getResources().getDimensionPixelOffset(R.dimen.left_menu_tv_heigth);
tvLayoutParams.gravity=Gravity.CENTER;
tvName.setText(entry.getValue());
tvName.setTag(entry.getKey());
tvName.setTextSize(getResources().getDimension(R.dimen.textsize_10));
tvName.setTextColor(ContextCompat.getColor(mContext,R.color.common_blue));
tvName.setGravity(Gravity.CENTER);
Drawable drawableLeft=ContextCompat.getDrawable(mContext,entry.getKey());
drawableLeft.setBounds(0, 0, drawableLeft.getMinimumWidth(), drawableLeft.getMinimumHeight());
tvName.setCompoundDrawables(drawableLeft,null,null,null);
tvName.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen._10dp));
viewLayoutParams.width= LayoutParams.MATCH_PARENT;
viewLayoutParams.height=getResources().getDimensionPixelOffset(R.dimen.common_margin_super_small);
viewLine.setBackgroundColor(ContextCompat.getColor(mContext,R.color.divider_line_grey_color));
tvName.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//listener.leftClick();
int drawableId=Integer.valueOf(v.getTag().toString());
if(drawableId==R.drawable.ico_left_menu_cashier){
mContext.startActivity(new Intent(mContext, MainActivity.class));
}else if(drawableId==R.drawable.ico_left_menu_order){
}else if(drawableId==R.drawable.ico_left_menu_after_sales){
}else if(drawableId==R.drawable.ico_left_menu_goods){
mContext.startActivity(new Intent(mContext, GoodsMessageActivity.class));
}else if(drawableId==R.drawable.ico_left_menu_setting){
}
}
});
tvName.setLayoutParams(tvLayoutParams);
viewLine.setLayoutParams(viewLayoutParams);
}
}
//自定义的顶部ActionBar的点击监听;
private LeftMenuClickListener listener;
//点击事件的监听接口
public interface LeftMenuClickListener {
void leftClick();
void rightClick();
}
//提供activity调用的方法,类似于Button类的setOnClickListener(OnClickListener listener)
//传入具体实现方法
public void setOnTopbarClickListener(LeftMenuClickListener listener){
this.listener=listener;
}
}
使用方法
<com.freexiaoyu.app.widget.LeftMenuView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/linear_leftmenu"
android:layout_width="220.0dip"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@color/white"
android:orientation="vertical" />
继承LinearLayout自定义左侧菜单的更多相关文章
- SharePoint开发 - 自定义导航菜单(一)菜单声明与配置
博客地址 http://blog.csdn.net/foxdave 本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可 ...
- 3.Node.js 自定义微信菜单
文章目录: 1.Node.js 接入微信公众平台开发 2.Node.js access_token的获取.存储及更新 3.Node.js 自定义微信菜单 ...
- 使用layui-tree美化左侧菜单,点击生成tab选项
layui-tree美化左侧菜单 html <div class="layui-side layui-bg-black"> <div class="la ...
- React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...
- 阻止右键菜单(阻止默认事件)&&跟随鼠标移动(大图展示)&&自定义右键菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C# WPF 左侧菜单右侧内容布局效果实现
原文:C# WPF 左侧菜单右侧内容布局效果实现 我们要做的效果是这样的,左侧是可折叠的菜单栏,右侧是内容区域,点击左侧的菜单项右侧内容区域则相应地切换. wpf实现的话,我的办法是用一个tabcon ...
- SPA项目开发之首页导航+左侧菜单
Mock.js: 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而mockjs就可以做到这一点 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发.进行前后端的原型分离以及用 ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- SharePoint 2013 自定义扩展菜单
在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式.SharePoint的各种功能菜单,像网站设置.Ribbo ...
随机推荐
- IDEA创建简单SpringBoot项目
环境:jdk 1.打开IDEA -->New --> Project -->Spring Initalizer-->next 2.此处,只做创建示例,所以next后Group等 ...
- amazeUI的confirm控件记录缓存问题的解决办法
场景:列表行每行都有删除按钮,点击删除按钮将行记录的id传给js方法,js方法中调用amazeui的confirm控件,确认删除function通过ajax执行删除行为. 问题现象:每次删除列表第一行 ...
- 番外篇1:在Windows环境中安装JDK
他山之石,可以攻玉!欢迎关注我的微信公众号 本文作为构建第一个Java程序的番外篇一,跟大家探讨下在Windows下怎么安装JDK.由于本人没有Mac,因此如果是Mac的同学,请自行百度哦! 读前预览 ...
- Unity UGUI Layout自动排版组件用法介绍
Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- 小程序之hover-class
hover-class 属性主要是用来来指定元素的点击态效果.但是在在使用中要注意,大部分组件是不支持该属性的. 目前支持 hover-class 属性的组件有三个:view.button.navig ...
- Byte数组和字符串相互转换的问题
第一:需求:将文件转成byte数组,之后转成字符串返回.过滤器接收到响应内容后,需要将响应的内容转成byte数组. 第二:我刚开始的做法: Controller:byteArr = Conversio ...
- Chrome如何访问外网
分享一下谷歌Chrome浏览器如何访问外网(FQ) 1.请确保你已经安装谷歌浏览器,同时能上网 2. 访问外网需要下载谷歌浏览器插件,网盘链接 https://pan.baidu.com/s/1R-b ...
- mysql5.7在windwos下的安装
1. 下载mysql5.7的安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 选择“Windows (x86, 64-bit), ZIP Archive” ...
- 2018.5.3 docker
# docker [TOC] ## docker概念 概念官网解释:[docker官网](https://www.docker.com/) 1. 开放平台 2. 容器技术 3. LXC(Linux C ...
- mininet的学习之一
mininet命令 (1)--topo (2)--switch (3)--controller (4)--mac 内部交互命令 添加主机 添加链路 添加接口 添加IP 确定是否创建成功 用h1 pin ...