博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导航栏选择器
阅读量:2359 次
发布时间:2019-05-10

本文共 3442 字,大约阅读时间需要 11 分钟。

先准备每组两张图片作为背景颜色的变换(也就是图片的变换),宽展性比较好

实现的效果:

inflate_toolbar_bn.xml:

制作一个自定义组件:

public class ToolBarUtil {    private List
mTextViews = new ArrayList<>(); public void createToolBar(LinearLayout mBotoom, String[] toolBarTitleArr, int[] iconArr) {
//toolBarTitleArr显示的文本,
for (int i = 0; i

activity_main.xml(在这里主要用LinearLayout作为底部导航栏的父布局

图片选择器:

select_food.xml:

select_friends.xml:

MainActivity中的引用:

public class MainActivity extends AppCompatActivity {    @InjectView(R.id.tv_title)    TextView mTvTitle;    @InjectView(R.id.toolbar)    Toolbar mToolbar;    @InjectView(R.id.view_pager)    ViewPager mViewPager;    @InjectView(R.id.main_bottom)    LinearLayout mBottom;    private ToolBarUtil mToolBarUtil;    private String[] mtoolBarTitleArr = {
"美食", "朋友圈"}; private int[] iconArr = {R.drawable.icon_message, R.drawable.icon_contact}; private List
mFragments = new ArrayList<>(); private MyPagerAdapter pagerAdapter; //private ViewPager vp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); initView(); initData(); mToolBarUtil = new ToolBarUtil(); mToolBarUtil.createToolBar(mBottom,mtoolBarTitleArr,iconArr); mToolBarUtil.changeColor(0); //设置ViewPager滑动事件处理 initListener(); //设置底部工具栏事件处理 mToolBarUtil.setOnToolBarClickListener(new ToolBarUtil.onToolBarClickListener() { @Override public void onToolBarClick(int position) { mViewPager.setCurrentItem(position); } }); } private void initListener() { mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { /*position-点击滑动的界面位置(viewpager界面排序为0.1.2.3....) positionOffset-点击页面便宜整个屏幕的百分比 positionOffsetPixels-屏幕像素位置*/ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mToolBarUtil.changeColor(position); //记得添加 if (position == 1) { mTvTitle.setText("朋友圈"); } } @Override public void onPageScrollStateChanged(int state) { } }); } private void initView() { mToolbar.setTitle(""); setSupportActionBar(mToolbar); } private void initData(){ SessionFragment sessionFragment = new SessionFragment(); ComtactFragment comtactFragment = new ComtactFragment(); mFragments.add(sessionFragment); mFragments.add(comtactFragment); pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()){ }; mViewPager.setAdapter(pagerAdapter); } class MyPagerAdapter extends FragmentPagerAdapter{ public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } }}

转载地址:http://ogjtb.baihongyu.com/

你可能感兴趣的文章
敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
查看>>
陈旧语法密度之七——用泛型消灭if-else if-else
查看>>
陈旧语法密度之三——用直接删除else的方法消除if-else if-else
查看>>
陈旧语法密度之五——用三元表达式消灭if-else if-else
查看>>
ImageView的缩放模式ScaleType
查看>>
用javadoc命令生成api帮助文档
查看>>
MBR简介
查看>>
查看Linux内核版本号与发行版本号
查看>>
Ant中设置特定的jdk版本
查看>>
解决ant编译中出现“includeantruntime was not set”警告的问题
查看>>
用ant进行编译和打包
查看>>
解决Ubuntu 10.04更改主机名之后sudo报错的问题
查看>>
Ubuntu 10.04设置终端窗口的默认大小
查看>>
windowSoftInputMode属性详解
查看>>
Android Studio快捷键
查看>>
Java中final的用法总结
查看>>
四种获取Class对象的方法-Java反射机制
查看>>
eclipse用空格代替制表符
查看>>
Squid中文权威指南-第4章 快速配置向导
查看>>
Squid中文权威指南-第5章 运行Squid
查看>>