最近做项目,需要有类似网易新闻顶端的导航栏的ui组件,但是就是有切换动画的那种,于是就自己动手写了一个,看了我的文章,如果有什么问题,欢迎大家交流哦。
实现原理:通过OnPageChangeListener的onPageScrolled()事件获取当前页面的偏移量,从而改变导航栏指示器的位置
请看代码:
java代码:
import android.content.Context;
import android.os.Handler;
import android.support.v7.widget.CardView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.support.v4.view.ViewPager;
import android.widget.ImageView;
/**
* Created by 猪屎秋 on 2016/10/13.
*/
public class NavigationBar extends CardView implements ViewPager.OnPageChangeListener {
//继承的类可以不是cardview,只要是viewgroup就可以了
private ImageView nav_indicator;
public NavigationBar(Context context, AttributeSet attributeSet) {
super(context,attributeSet);
LayoutInflater.from(context).inflate(R