Android仿微信底部选项卡

时间:2023-02-20 22:31:44

第一步 添加依赖

    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仿微信底部选项卡的更多相关文章

  1. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  2. Android 仿微信小视频录制

    Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章

  3. Android仿微信界面

    效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...

  4. Android仿微信拍摄短视频

    近期做项目需要添加上传短视频功能,功能设置为类似于微信,点击开始拍摄,设置最长拍摄时间,经过研究最终实现了这个功能,下面就和大家分享一下,希望对你有帮助. 1.视频录制自定义控件: /** * 视频播 ...

  5. android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码

    Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Mater ...

  6. Android UI-仿微信底部导航栏布局

    现在App基本的标配除了侧滑菜单,还有一个就是底部导航栏,常见的聊天工具QQ,微信,购物App都有底部导航栏,用户可以随便切换看不同的内容,说是情怀也好,用户体验也罢.我们开发的主要的还是讲的是如何如 ...

  7. Android仿微信高效压缩图片&lpar;libjpeg&rpar;

    用过ios手机的同学应该很明显感觉到,ios拍照1M的图片要比安卓拍照排出来的5M的图片还要清晰.这是为什么呢? 这得了解android底层是如何对图片进行处理的. 当时谷歌开发Android的时候, ...

  8. Android 仿微信朋友圈添加图片

    github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic *惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...

  9. html css 仿微信底部自己定义菜单

    近期几个月一直从事微信开发,从刚開始的懵懂渐渐成长了一点. 今天认为微信底部自己定义菜单,假设能在html的页面上也能显示就好了. 记得曾经看过某个网页有类似效果.查找了该网页的css.  ok如今h ...

随机推荐

  1. Bzoj2753 &lbrack;SCOI2012&rsqb;滑雪与时间胶囊

    2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 2282  Solved: 796 Descriptio ...

  2. 四则运算(Android版)

    MainActivity: package com.example.demon; import android.os.Bundle; import android.app.Activity; impo ...

  3. WordPress的SEO技术

    原文:http://blog.wpjam.com/article/wordpress-seo/ 文章目录[隐藏] 内容为王 页面优化 标题 链接(URL) Meta 标签 语义化 H1 H2 H3 等 ...

  4. 2014年9月21日&lowbar;随笔,jdic&comma;ETL&comma;groovy&comma;Nutz好多东西想学

    (1)老妈十一要回老家,才突然发现买票好难啊.有亲朋很重要 (2)这周我做了什么.jdic,ETL,groovy, Nutz好多东西想学. Nutz开发成员专访.Nutz优酷视频(演讲).Nutz 入 ...

  5. android开发之定制ViewPager滑动事件

    明天还要加班,苦逼的程序猿,简单说说最近遇到的一个问题吧. 我在viewpager+fragment学习笔记中简单介绍过ViewPager+Fragment的用法,其实并不难,当时实现了一个如下图所示 ...

  6. hackme&period;inndy&period;tw - pyyy - Writeup

    hackme.inndy.tw - pyyy - Writeup 0x01 反编译 1.第一次尝试的时候我直接在线反编译,部分结果如下. for (i, f) in enumerate(F): n = ...

  7. Win7下,nginx默认80端口被System占用,造成nginx启动报错

    在win7 32位旗舰版下,启动1.0.8版本nginx,显示如下错误: 2012/04/02 13:55:59 [emerg] 7864#2376: bind() to 0.0.0.0:80 fai ...

  8. easyui datagrid 动态改变行背景色

    /*根据查询条件查询调度单列表*/ function InitGrid(queryData) { $("#dg").datagrid({ loadMsg: "数据加载中, ...

  9. 常用linux命令及shell脚本

    参考:Linux命令大全 分割大文件 Split命令 按行分割(只能是文本文件) $split -l 1000 big_file 前缀 按文件大小分割 $split -b 64m big_file 前 ...

  10. java多线程读取、操作List集合

    import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.ArrayUtils;   pub ...