public class MainActivity extends Activity {
private TextView mMenu1;
private TextView mMenu2;
private View mLine;
private ViewPager mViewPager;
private List<View> lists = new ArrayList<>();
private DisplayMetrics dm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dm = getResources().getDisplayMetrics();
mMenu1 = (TextView) findViewById(R.id.tv_menu1);
mMenu2 = (TextView) findViewById(R.id.tv_menu2);
mViewPager = (ViewPager) findViewById(R.id.viewPager);
mLine = findViewById(R.id.line);
android.view.ViewGroup.LayoutParams params = mLine.getLayoutParams();
params.height = DensityUtil.dip2px(this, 2);
params.width = dm.widthPixels / 2;
mLine.setLayoutParams(params);
View view1 = getLayoutInflater().inflate(R.layout.layout1, null);
View view2 = getLayoutInflater().inflate(R.layout.layout2, null);
lists.add(view1);
lists.add(view2);
mViewPager.setAdapter(new ViewPagerAdapter(lists));
mViewPager.addOnPageChangeListener(new OnPageChangeListener() {
private Animation animation;
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
mMenu1.setTextColor(getResources().getColor(R.color.blue_light));
mMenu2.setTextColor(getResources().getColor(R.color.gray));
animation = new TranslateAnimation(dm.widthPixels / 2, 0, 0, 0);
break;
case 1:
mMenu2.setTextColor(getResources().getColor(R.color.blue_light));
mMenu1.setTextColor(getResources().getColor(R.color.gray));
animation = new TranslateAnimation(0, dm.widthPixels / 2, 0, 0);
break;
}
animation.setDuration(150);
animation.setFillAfter(true);
mLine.startAnimation(animation);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
class ViewPagerAdapter extends PagerAdapter{
List<View> list;
public ViewPagerAdapter(List<View> list) {
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(list.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(list.get(position));
return list.get(position);
}
}
}