android viewpager button 导航,ViewPager做底部导航
做了一个项目,需要使用底部导航功能,仿微信效果,可以左右滑动切换页面。好处就是比较适合用户手势操作,操作效果比较好;缺点是viewpager控件需要提前加载下一个页面,最少提前加载一个页面,为了保证左右滑动时不出现卡顿现象。例如,当显示“首页”页面时,会加载“应用”中的页面,此时“应用”页面有联网操作的话,会启动thread联网,如果有progressDialog转圈操作的话,会在“首页”中显示,此点需要特别!!
先上效果图:
布局文件main.xml
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/guidePages"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/viewGroup" />
android:id="@+id/viewGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000000"
android:orientation="horizontal" />
其中主activity页面MainActivity.java
// @ViewInject(R.id.guidePages)
// ViewPager viewPager = null;
// //包裹底部图标的LinearLayout
// @ViewInject(R.id.viewGroup)
// LinearLayout viewPoints = null;
private void initViewPager() {
//设置viewpager的适配器和监听事件
ViewPagerFragmentAdapter mAdapter = new ViewPagerFragmentAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
viewPager.setOnPageChangeListener(new GuidePageChangeListener());
}
private void initBottomImage() {
//创建ImageView数组,大小是要显示的图片的数量
imageViews = new ImageView[Const.IMAGE_NUM];
// 计算每个item的宽度,使得可以显示4个图标
int itemW = screenWidth / Const.IMAGE_NUM;
//添加底部图标的图片
for(int i = 0; i
ImageView imageView = new ImageView(this);
//设置底部图标imageview的宽高
// imageView.setLayoutParams(new LayoutParams(itemW,LayoutParams.WRAP_CONTENT));//创建一个宽为屏幕 1/4像素,高为图片高
imageView.setLayoutParams(new LayoutParams(itemW, itemW * 100 / 135));//屏幕宽度540,做的底部图高100,宽135,计算为了适配其他设备
//将底部图标layout添加到数组中
imageViews[i] = imageView;
imageViews[i].setTag(i);
imageViews[i].setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(viewPager != null)
viewPager.setCurrentItem((Integer)v.getTag());
}
});
//默认选中的是第一张图片,此时第一个小圆点是选中状态,其他不是
if(i==0){
imageViews[i].setBackgroundResource(R.drawable.home_bottom_icon_home);
}else if(i==1){
imageViews[i].setBackgroundResource(R.drawable.home_bottom_icon_app);
} else if(i==2){
imageViews[i].setBackgroundResource(R.drawable.home_bottom_icon_flow);
} else if(i==3){
imageViews[i].setBackgroundResource(R.drawable.home_bottom_icon_flow);
}
//将imageviews添加到底部图标视图组
viewPoints.addView(imageViews[i]);
}
}
ViewPagerFragmentAdapter.java文件
public class ViewPagerFragmentAdapter extends FragmentPagerAdapter {
public ViewPagerFragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
if(position == 0) {
fragment = HomeFragment.newInstance(position);
} else if(position == 1) {
fragment = AppStoreFragment.newInstance(position);
} else if(position == 2) {
fragment = WifiFlowFragment.newInstance(position);
} else if(position == 3) {
fragment = SettingFragment.newInstance(position);
}
return fragment;
}
@Override
public int getCount() {
return Const.IMAGE_NUM;//IMAGE_NUM = 4
}
}
一个imageBackground文件home_bottom_icon_home.xml
android viewpager button 导航,ViewPager做底部导航相关推荐
- Android 最常用的四种底部导航栏实现
Android 底部导航栏实现 底部导航栏的应用非常的广泛.今天就总结下几种实现的方式. 一.Fragment + TextView 实现 前面一篇博客在介绍Fragment 的时候就使用了Fragm ...
- 转载:Android (争取做到)最全的底部导航栏实现方法
原文出处 标题:Android (争取做到)最全的底部导航栏实现方法 作者:野狼谷 原文链接:Android (争取做到)最全的底部导航栏实现方法 - 野狼谷 - 博客园 前言 本文(争取做到)And ...
- apicloud aui 做底部导航
apicloud aui 做底部导航 <!doctype html> <html><head><meta charset="utf-8"& ...
- 原生Android打造一个炫酷的底部导航栏
最近浏览各大平台,发现各种导航栏层出不穷,出于好奇心,我也来试试.先上个效果图 代码也简单:首先布局文件 <?xml version="1.0" encoding=" ...
- 21天学习之二(Android 10.0 SystemUI默认去掉底部导航栏的三种方法)
活动地址:CSDN21天学习挑战赛 1.概述 在定制化开发中,在SystemUI的一些定制功能中,针对默认去掉底部导航栏的方法有好几种,StatusBar和DisplayPolicy.java中api ...
- Android studio实现底部导航,AndroidStudio制作底部导航栏以及用Fragment实现切换功能...
前言 大家好,我是 Vic,今天给大家带来AndroidStudio制作底部导航栏以及用Fragment实现切换功能的概述,希望你们喜欢 学习目标 AndroidStudio制作底部导航栏以及用Fra ...
- Android开发:隐藏和显示底部导航栏
描述:视频播放器实现全屏和小屏互相切换时,显示和隐藏底部导航栏的方法 该例子设置的Activity是去除状态栏和标题栏,全屏显示布局和电量等信息.Manifest文件 theme如下: <act ...
- 质感设计 android,扣丁学堂Android开发Flutter质感设计之底部导航
BottomNavigationBar即底部导航栏控件.显示在应用底部的质感设计控件,用于在少量视图中切换.底部导航栏包含多个以标签.图标或两者搭配的形式显示在项目底部的项目,提供了应用程序的顶级视图 ...
- React Native 的顶部导航栏和底部导航栏目
说来也是惭愧,本来关于底部导航栏,我已经写过一篇博客,只不过那篇更偏向于入门一些,当时一实现功能之后就迫不及待的分享给大家了.地址在这儿:http://blog.csdn.net/LJFPHP/art ...
最新文章
- 简单总结nodejs处理tcp连接的核心流程
- 给羊羔:学习web前端开发的路线(一)
- 【windows7】解决IIS 80端口占用问题(亲测)
- Making the Grade POJ - 3666(离散化+dp)
- guava 集合转换_Guava的Collections2:过滤和转换Java集合
- 如何使用Node.js构建完整的GraphQL服务器
- 主机屋linux怎么连,全网最详细的samba文件共享服务!
- 【经验分享】linux交叉编译 - openssl动态库
- (摘录)Linux如何去学、要学什么、又怎样才能学好
- 10 年三线小城 IT 开发的感悟
- Android 分屏模式-多窗口支持
- Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
- 餐厅小票打印模板_智慧餐厅多商家入驻小程序开发,成功案例:万足外卖!
- 基于大数据分析山东2020年高考难度和选科要求(一)
- 如何快速搭建一个简单图像搜索引擎
- Cotex-M3内核STM32F10XX系列时钟及其配置方法
- itol绘制高颜值的进化树
- c 编程语言翻译 网站,计算机语言翻译
- 数据库学习笔记四收缩数据库
- Mysql常用函数(一)