initData();
//初使化横向滑动菜单
initMenu();
//设置viewpager的适配器
MyPagerAdapter adapter=new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//设置选中的菜单,改变文本颜色
setSelectedMenu(position);
//设置滚动
setScrollMenu(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
viewPager.setOffscreenPageLimit(menuText.size());
/**
* 设置横向滑动菜单 滚动到 指定的菜单 项
* @param index
*/
private void setScrollMenu(int index){
//得到组件
TextView tvMenu=menuLists.get(index);
float tx = tvMenu.getX();//得到x坐标
//scrollTo(x,y):滚动 y-代表垂直方向的滚动 x-代表水平方向的滚动
hsv.scrollTo((int)tx,0);
}
private void initData() {
menuText.add("头条");
menuText.add("社会");
menuText.add("国内");
menuText.add("国际");
menuText.add("娱乐");
menuText.add("体育");
menuText.add("军事");
menuText.add("科技");
menuText.add("财经");
menuText.add("时尚");
tabsType.add("top");
tabsType.add("shehui");
tabsType.add("guonei");
tabsType.add("guoji");
tabsType.add("yule");
tabsType.add("tiyu");
tabsType.add("junshi");
tabsType.add("keji");
tabsType.add("caijing");
tabsType.add("shishang");
}
private void initMenu() {
//将TextView组件 添加到 linMenu 组件中
for (int i = 0; i < menuText.size(); i++) {
//创建菜单 TextView
TextView textView = new TextView(this);
textView.setText(menuText.get(i));
if (i == 0) {
textView.setTextColor(Color.RED);//设置字体颜色是红色
} else {
textView.setTextColor(Color.BLACK);//设置字体颜色是黑色
}
//设置标签,用来记录它是第几个菜单
textView.setTag(i);
//添加点击事件
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//viewpager切换到不同的页面
viewPager.setCurrentItem(Integer.parseInt(view.getTag() + ""));
//设置颜色
setSelectedMenu(Integer.parseInt(view.getTag() + ""));
}
});
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 5, 8, 0);//设置菜单之间的间隔
//进行添加 addView
linMenu.addView(textView, params);
//添加到集合中
menuLists.add(textView);
}
}
/**
* 将所有的菜单遍历一遍,设置选中的菜单字体颜色为红色,其余是黑色
* @param menuIndex
*/
private void setSelectedMenu(int menuIndex){//menuIndex:当前选中菜单的下标
for(int i=0;i<menuLists.size();i++){
if(i==menuIndex){
menuLists.get(i).setTextColor(Color.RED);//选中的颜色
}else {
menuLists.get(i).setTextColor(Color.BLACK);
}
}
}
class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
//用来返回每个页面
@Override
public Fragment getItem(int position) {//position:页面的下标
RecommendFr fr=new RecommendFr();
Bundle bundle=new Bundle();
bundle.putString("tt",tabsType.get(position));
fr.setArguments(bundle);
Toast.makeText(MainActivity.this,tabsType.get(position)+"--"+position,Toast.LENGTH_SHORT).show();
return fr;
}
//返回页面的数量
@Override
public int getCount() {
return menuText.size();
}
}
Bundle arguments = getArguments();
String str=arguments.getString("tt");
urlpath="http://v.juhe.cn/toutiao/index?type="+str+"&key=597b4f9dcb50e051fd725a9ec54d6653";