继承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 ...
随机推荐
- 微信小程序上传文件遇到的坑
在开发小程序时,使用的花生壳做的内网映射,域名使用花生壳卖的https域名 在做小程序文件上传时,调用接口,老是报错. Caused by: org.apache.commons.fileupload ...
- java web从入门到精通
1.Springboot配置 1.1mybatis mapper.xml所在的目录必须为resource的资源文件夹,如果xml文件在java的package里面,需要修改文件夹类型 idea修改方式 ...
- ReentrantLock+线程池+同步+线程锁
1.并发编程三要素? 1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行. 2)可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量 ...
- Ubuntu 16.04 环境下配置apache2.4 + php5.6
相信用惯了Windows的朋友一开始接触Linux是很崩溃的,因为很多东西都是通过命令行来完成的,包括安装绝大多数的开发工具以及环境,那么在Ubuntu下其实可以直接通过apt-get指令来安装apa ...
- linux rar文件解压命令
解压命令: unrar x demo.rar
- Spring-AOP 基于注解的实现
一.AOP: 是对OOP编程方式的一种补充.翻译过来为“面向切面编程”. 可以理解为一个拦截器框架,但是这个拦截器会非常武断,如果它拦截一个类,那么它就会拦截这个类中的所有方法.如对一个目标列的代理, ...
- 图的深度优先遍历(DFS)—递归算法
实验环境:win10, DEV C++5.11 实验要求: 实现图的深度优先遍历 实验代码: #include <iostream> #define maxSize 255 #includ ...
- appium-doctor问题
在电脑上安装Appium,打开CDM运行appium-doctor,运行报错提示如下 检查运营Java.javac.java -version均有返回值,说明我的配置是成功,输入where Java, ...
- 常见模块(七) re模块
首先明白正则表达式和re模块的关系:正则:是一种规则,这种规则在任何一种语言中都严格按照此规则进行匹配.正则匹配的就是字符串,从字符串的左边往右边匹配re: re是python语言中的利用正则规则的一 ...
- OSI七层网络模型浅析
OSI七层网络模型(从下往上): 物理层(Physical):设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的 环境.可以理解为网络传输的物理媒体部分,比如网卡,网线,集线器,中继器,调 ...