android 使用TabLayout 自定义View布局作为底部菜单栏
2017-11-23 09:07
645 查看
开发工具:android studio
本文使用ViewPager + TabLayout 演示菜单功能,如图所示
![](https://img-blog.csdn.net/20171123085750923?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3dlcjA4MDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1.TabLayout 使用的是
所以需要在项目 根build.grade 中 引入
引入版本根据项目自行修改即可。
2.直接上代码
@BindView(R.id.tlTitle)
TabLayout tlTitle;
本文使用ViewPager + TabLayout 演示菜单功能,如图所示
1.TabLayout 使用的是
android.support.design.widget.TabLayout
所以需要在项目 根build.grade 中 引入
compile 'com.android.support:design:23.2.1'
引入版本根据项目自行修改即可。
2.直接上代码
@BindView(R.id.tlTitle)
TabLayout tlTitle;
// 绑定TabLayout 与 ViewPager 关联 tlTitle.setupWithViewPager(avp); // 设置初始化菜单 tlTitle.getTabAt(0).setCustomView(addTabIcon("首页", true, R.drawable.iv_menu1_choosed)); tlTitle.getTabAt(1).setCustomView(addTabIcon("事迹", false, R.drawable.iv_menu2_normal)); tlTitle.getTabAt(2).setCustomView(addTabIcon("祭拜", false, R.drawable.iv_menu5_normal)); tlTitle.getTabAt(3).setCustomView(addTabIcon("留言", false, R.drawable.iv_menu4_normal)); tlTitle.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { // 选中 if (tab == tlTitle.getTabAt(0)) { setTabIcon(tab.getCustomView(), "首页",true, R.drawable.iv_menu1_choosed); avp.setCurrentItem(0); } else if (tab == tlTitle.getTabAt(1)) { setTabIcon(tab.getCustomView(), "事迹",true, R.drawable.iv_menu2_choosded); avp.setCurrentItem(1); } else if (tab == tlTitle.getTabAt(2)) { setTabIcon(tab.getCustomView(), "祭拜", true,R.drawable.iv_menu5_choosed); avp.setCurrentItem(2); }else if (tab == tlTitle.getTabAt(3)){ setTabIcon(tab.getCustomView(), "留言",true, R.drawable.iv_menu4_choosed); avp.setCurrentItem(3); } } @Override public void onTabUnselected(TabLayout.Tab tab) { // 未选中 if (tab == tlTitle.getTabAt(0)) { setTabIcon(tab.getCustomView(), "首页",false, R.drawable.iv_menu1_normal); } else if (tab == tlTitle.getTabAt(1)) { setTabIcon(tab.getCustomView(), "事迹", false,R.drawable.iv_menu2_normal); } else if (tab == tlTitle.getTabAt(2)) { setTabIcon(tab.getCustomView(), "祭拜", false,R.drawable.iv_menu5_normal); }else if (tab == tlTitle.getTabAt(3)){ setTabIcon(tab.getCustomView(), "留言",false, R.drawable.iv_menu4_normal); } } @Override public void onTabReselected(TabLayout.Tab tab) { } }); /**** * 创建自定义的菜单视图 * @param name 名字 * @param select true 选中 false 未选中 * @param iconID 图标 * @return */ private View addTabIcon(String name, boolean select,int iconID){ // 自定义视图 View newtab = LayoutInflater.from(this).inflate(R.layout.venue_tab,null); TextView tv = (TextView) newtab.findViewById(R.id.tvTitle); ImageView im = (ImageView)newtab.findViewById(R.id.ivIocn); im.setImageResource(iconID); String html = select? "<font color=\"#d8b36b\">"+name+"</font>":"<font color=\"#999999\">"+name+"</font>" ; tv.setText(Html.fromHtml(html)); return newtab; } /*** * 设置自定义菜单视图内容 * @param newtab 视图 * @param name 名字 * @param select true 选中 false 未选中 * @param iconID 图标 * @return */ private View setTabIcon( View newtab, String name, boolean select,int iconID){ TextView tv = (TextView) newtab.findViewById(R.id.tvTitle); ImageView im = (ImageView)newtab.findViewById(R.id.ivIocn); im.setImageResource(iconID); String html = select? "<font color=\"#d8b36b\">"+name+"</font>":"<font color=\"#999999\">"+name+"</font>" ; tv.setText(Html.fromHtml(html)); return newtab; }
相关文章推荐
- Android使用TabLayout+ViewPager实现顶部滑动菜单栏
- Android Tablayout 自定义Tab布局的使用
- android ListView布局之三(使用自定义的Adapter绑定数据,通过contextView.setTag绑定数据)有按钮的ListView
- Android 自定义View及其在布局文件中的使用示例
- Android底部弹出的View,可自定义布局
- 使用TabLayout实现底部Tab布局
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
- android中RecyclerView使用自定义的列表布局
- 【Android】viewpager+fragment+tablayout实现滑动菜单栏
- Android-->FlowRadioGroup(流式布局RadioGroup, 自定义View的简单使用)
- android ListView布局之三(使用自定义的Adapter绑定数据,通过contextView.setTag绑定数据)有按钮的ListView
- 自定义的LinearLayout 使用报错 android.view.InflateException: Binary XML file line #3: Error inflating class
- Android 自定义View及其在布局文件中的使用示例(二)
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- [转]Android底部弹出的View,可自定义布局
- Android 自定义View及其在布局文件中的使用示例
- Android 使用LinearLayout.getChildAt(i)获取一个线性布局的view,并实现content中实现方法
- Android 自定义View及其在布局文件中的使用示例
- android使用ViewPager实现底部菜单栏和左右滑动效果,加载多个Activity
- android一个BaseAdapter的使用(LayoutInflater加载自定义布局)