Android指示器的使用。
来源:互联网 发布:架构图制作软件 知乎 编辑:程序博客网 时间:2024/05/21 06:18
MagicIndicator是一款比较灵活的指示器。做项目时由于特殊的需求,需要灵活的指示器。于是在GitHub上找到一个使用很方便的框架。
github地址:https://github.com/hackware1993/MagicIndicator
使用:
1.添加依赖
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } }}在app的gradle下,添加下面依赖。
dependencies { ... compile 'com.github.hackware1993:MagicIndicator:1.5.0' }2.在布局文件中使用。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="net.lucode.hackware.magicindicatordemo.MainActivity"> <net.lucode.hackware.magicindicator.MagicIndicator android:id="@+id/magic_indicator" android:layout_width="match_parent" android:layout_height="40dp" /> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" />3.代码中的使用(找到该指示器,给他设置Navigator的样式)
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator);
//此处用的时通常使用的样式。CommonNavigator commonNavigator = new CommonNavigator(this);
//给Navigator设置适配器。也就是给指示器添加标题内容。commonNavigator.setAdapter(new CommonNavigatorAdapter() { @Override public int getCount() { return mTitleDataList == null ? 0 : mTitleDataList.size(); } @Override public IPagerTitleView getTitleView(Context context, final int index) { ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context); colorTransitionPagerTitleView.setNormalColor(Color.GRAY); colorTransitionPagerTitleView.setSelectedColor(Color.BLACK); colorTransitionPagerTitleView.setText(mTitleDataList.get(index)); colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mViewPager.setCurrentItem(index); } }); return colorTransitionPagerTitleView; } @Override public IPagerIndicator getIndicator(Context context) { LinePagerIndicator indicator = new LinePagerIndicator(context); indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); return indicator; }});
//将设置好的Navigator添加到指示器中。magicIndicator.setNavigator(commonNavigator);4.我们也可以自定义MagicIndicator。
(1)写一个MypagerTitleView继承View并实现IPagerTitleView这个接口。可在方法回掉时,做自己的操作。
public class MyPagerTitleView extends View implements IPagerTitleView { public MyPagerTitleView(Context context) { super(context); } @Override public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { } @Override public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { } @Override public void onSelected(int index, int totalCount) { } @Override public void onDeselected(int index, int totalCount) { }}(2)写一个MyPagerIndicator继承自View并实现IPagerIndicator。
public class MyPagerIndicator extends View implements IPagerIndicator { public MyPagerIndicator(Context context) { super(context); } @Override public void onPageSelected(int position) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { } @Override public void onPositionDataProvide(List<PositionData> dataList) { }}5.如果自己集成的时候出现问题,可以下载GitHub上的项目,项目中的example文件夹下,是指示器效果实例。可以参考实例进行开发。毕竟项目是别人写的,理解起来需要点时间。
阅读全文
0 0
- Android指示器的使用。
- Android指示器的使用总结
- Android万能的指示器
- android MagicIndicator 指示器简单使用
- 指示器+viewpager Android Design Support Library使用详解指示器
- Android简单的ViewPager指示器
- Android简单的ViewPager指示器
- ios 指示器MBProgressHUD 的使用
- Android指示器。
- Android之带group指示器的ExpandableListView
- Android之带group指示器的ExpandableListView
- android 中 viewpager 滑动的指示器
- android 中 viewpager 滑动的指示器
- android文字下的line指示器
- Android之带group指示器的ExpandableListView
- Android 打造万能的ViewPagerIndicator 指示器
- android实现miui指示器的效果
- android 封装好的ViewPagerIndicator指示器
- Oracle笔记五:单行函数
- 多线程之CyclicBarrier
- ISTQB认证考试通过秘籍 问题一、ISTQB是什么?有哪些分类? ISTQB(International Software Testing Qualification Board)是国际唯一权威的软
- 15个顶级Java多线程面试题及答案
- 8. String to Integer (atoi)
- Android指示器的使用。
- 如何让App首屏启动更快 -- httpdns持久化缓存方案
- 实验2
- HDU 6213 模拟
- 使用深度学习进行生存分析
- 【java基础】单例设计模式:保证一个类在内存中的对象唯一性
- select框默认选项为空白
- 怎样获得C币
- MATLAB R2016a Builder JA