Android仿微信底部选项卡
第一步 添加依赖
dependencies {
compile 'com.yinglan.alphatabs:library:1.0.5'
}
第二步 布局使用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".hometype.FragmentViewPagerActivity"> <android.support.v4.view.ViewPager
android:id="@+id/vp_home"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<TextView
android:id="@+id/tv_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@+id/rl_bottom"
android:background="@color/light_gray"
/> <RelativeLayout
android:id="@+id/rl_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#fff"
android:paddingBottom="2dp"
android:paddingTop="4dp">
<com.yinglan.alphatabs.AlphaTabsIndicator
android:id="@+id/alphaIndicator"
android:layout_width="match_parent"
android:layout_height="55dp"
android:orientation="horizontal"> <com.yinglan.alphatabs.AlphaTabView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
android:id="@+id/alphaTabView"
app:tabIconNormal="@drawable/student_icon"
app:tabIconSelected="@drawable/student_icon_show"
app:tabText="页面一"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
app:badgeBackgroundColor="@color/color_primary_red"/>
<com.yinglan.alphatabs.AlphaTabView android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp" app:tabIconNormal="@drawable/home_drive"
app:tabIconSelected="@drawable/home_drive_light"
app:tabText="页面二"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
/> <com.yinglan.alphatabs.AlphaTabView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
app:tabIconNormal="@drawable/order_iocn"
app:tabIconSelected="@drawable/order_iocn_show"
app:tabText="页面三"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
/>
</com.yinglan.alphatabs.AlphaTabsIndicator>
</RelativeLayout>
</RelativeLayout>
说明
| 配置参数 | 参数含义 |
|---|---|
| tabIconNormal | 未选中的图标 |
| tabIconSelected | 已经选中的图标 |
| tabText | tab标签的文字 |
| tabTextSize | tab标签的文字大小 |
| textColorNormal | 未选中的文字颜色 |
| textColorSelected | 已选中的文字颜色 |
| badgeBackgroundColor | 角标背景色,默认红色 |
第三步 代码编写:
import android.support.v4.view.ViewPager;
import android.view.View; import com.loaderman.samplecollect.R;
import com.loaderman.samplecollect.activity.BaseActivity;
import com.loaderman.samplecollect.adapter.MyPagerAdapter;
import com.loaderman.samplecollect.constants.FragmentNameTagConstants;
import com.yinglan.alphatabs.AlphaTabView;
import com.yinglan.alphatabs.AlphaTabsIndicator;
import com.yinglan.alphatabs.OnTabChangedListner; public class FragmentViewPagerActivity extends BaseActivity implements View.OnClickListener { private ViewPager vpHome;
private AlphaTabView mAlphaTabView; @Override
public int getLayout() {
return R.layout.activity_fragment_view_pager2;
} @Override
public void initView() {
ivLeft.setVisibility(View.GONE);
vpHome = (ViewPager) findViewById(R.id.vp_home);
AlphaTabsIndicator mAlphaTabsIndicator = findViewById(R.id.alphaIndicator);
mAlphaTabView = findViewById(R.id.alphaTabView);
vpHome.setOffscreenPageLimit(5);
MyPagerAdapter homeAdapter = new MyPagerAdapter(getSupportFragmentManager());
vpHome.setAdapter(homeAdapter);
mAlphaTabsIndicator.setViewPager(vpHome);
// mAlphaTabView.showNumber(55); //显示数字角标
mAlphaTabView.showPoint(); //显示小红点
// mAlphaTabView.removeShow(); //移除当前角标
mAlphaTabsIndicator.setOnTabChangedListner(new OnTabChangedListner() {
@Override
public void onTabSelected(int tabNum) {
updateTitleBar(tabNum);
}
}); //设置底部tab点击监听
mAlphaTabsIndicator.setTabCurrenItem(0); //设置tab选项
updateTitleBar(FragmentNameTagConstants.HOME_0_TAG);
// mAlphaTabsIndicator.removeAllBadge(); //移除所有tab的角标
} private void updateTitleBar(int position) {
switch (position) {
case FragmentNameTagConstants.HOME_0_TAG:
tvCenter.setText(getResources().getString(R.string.home_0));
mAlphaTabView.showNumber(555); //显示数字角标
break;
case FragmentNameTagConstants.HOME_1_TAG:
tvCenter.setText(getResources().getString(R.string.home_1)); break;
case FragmentNameTagConstants.HOME_2_TAG:
tvCenter.setText(getResources().getString(R.string.home_2));
break;
}
} @Override
public void initData() { } @Override
public void initListener() { vpHome.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override
public void onPageSelected(int position) { updateTitleBar(position);
} @Override
public void onPageScrollStateChanged(int state) { }
});
} @Override
public void initNetConnectionOkData() { } @Override
public void initNetConnectionErrData() { } @Override
public void onClick(View view) {
int position = (Integer) view.getTag();
// 点击底部某一项的时候将ViewPager切换到那个界面
vpHome.setCurrentItem(position, false);
updateTitleBar(position);
}
}
效果图

Android仿微信底部选项卡的更多相关文章
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...
- Android 仿微信小视频录制
Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章
- Android仿微信界面
效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...
- Android仿微信拍摄短视频
近期做项目需要添加上传短视频功能,功能设置为类似于微信,点击开始拍摄,设置最长拍摄时间,经过研究最终实现了这个功能,下面就和大家分享一下,希望对你有帮助. 1.视频录制自定义控件: /** * 视频播 ...
- android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码
Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Mater ...
- Android UI-仿微信底部导航栏布局
现在App基本的标配除了侧滑菜单,还有一个就是底部导航栏,常见的聊天工具QQ,微信,购物App都有底部导航栏,用户可以随便切换看不同的内容,说是情怀也好,用户体验也罢.我们开发的主要的还是讲的是如何如 ...
- Android仿微信高效压缩图片(libjpeg)
用过ios手机的同学应该很明显感觉到,ios拍照1M的图片要比安卓拍照排出来的5M的图片还要清晰.这是为什么呢? 这得了解android底层是如何对图片进行处理的. 当时谷歌开发Android的时候, ...
- Android 仿微信朋友圈添加图片
github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic 老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...
- html css 仿微信底部自己定义菜单
近期几个月一直从事微信开发,从刚開始的懵懂渐渐成长了一点. 今天认为微信底部自己定义菜单,假设能在html的页面上也能显示就好了. 记得曾经看过某个网页有类似效果.查找了该网页的css. ok如今h ...
随机推荐
- Django中使用JWT
JWT """ 1.组成: header.payload.signature 头.载荷.签名 2.距离: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1 ...
- HTML主体标签
HTML标签 在HTML结构代码中可以看到非常多的<>,这就是html的标签.整块html代码几乎就是由各种各样的标签与标签内容构成,每一个标签对应一个网页上的一个小模块,如一段文字1,一 ...
- 阿里P7架构师是如何解决跨域问题的!你有遇到吗?
现在越来越多的项目就算是一个管理后端也偏向于使用前后端分离的部署方式去做,为了顺应时代的潮流,一前后端分离就产生了跨域问题,所以许多同学把跨域和前后端分离项目联系在了一起,其实跨域产生的原因并不是前后 ...
- 修改gitlab配置文件指定服务器ip和自定义端口:
修改gitlab配置文件指定服务器ip和自定义端口: vim /etc/gitlab/gitlab.rb gitlab-ctl reconfiguregitlab-ctl restart 查看与rpm ...
- 滑雪 ( bfs+记忆化
https://www.luogu.org/problemnew/show/P1434 题目 #include<iostream> #include<cstdio> #inc ...
- evpp下载1个文件
上传一个文件无错误 如何下载一个文件?? 集群?? http pdf 直接 redbuf
- Spring Boot起步依赖:定制starter
在定制我们自己的起步依赖--xxx.spring.boot.starter之前,我们先了解下什么是Spring Boot起步依赖. 起步依赖,是Spring Boot带给我们的一项重要的便利.要理解S ...
- 0014SpringBoot结合thymeleaf实现登录功能
该登录功能需要实现的需求如下: 1.输入用户名密码,如果验证通过,进入首页,并显示登录的用户名 2.如果验证不通过,则重新进入登录页面,并显示“用户名密码错误” 3.如果未经登录,不能直接访问首页等静 ...
- unable to import maven project see logs for details
2019-10-21 19:31:06,987 [40598655] WARN - ution.rmi.RemoteProcessSupport - SLF4J: Actual binding i ...
- 51 arm x86 的大小端记录
51 是大端模式 arm的cortex m 默认小端,可以设置大端 x86是小端 大端模式:低位字节存在高地址上,高位字节存在低地址上 小端模式:高位字节存在高地址上,低位字节存在低地址上