import java.util.ArrayList; import java.util.List; /** * Created by 丶未央 on 2018/1/8. */ public class Fragmentone extends Fragment { private ViewPager vpo; private LinearLayout ll; private List<String> list=new ArrayList<>(); private TextView texto; private List<TextView> menus=new ArrayList<>(); private HorizontalScrollView hsv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment, container, false); vpo = view.findViewById(R.id.vpo); ll = view.findViewById(R.id.ll); hsv = view.findViewById(R.id.hsv); getshuju(); //设置适配器 vpo.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public Fragment getItem(int position) { Content content = new Content(); Bundle bundle=new Bundle(); bundle.putString("data",list.get(position)); content.setArguments(bundle); return content; } @Override public int getCount() { return list.size(); } }); vpo.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //改变菜单颜色 setMenuColor(position); //滚动 moveMenu(position); } @Override public void onPageScrollStateChanged(int state) { } }); return view; } public void moveMenu(int index){ TextView textView = menus.get(index); float x = textView.getX();//在x轴上的坐标 //滚动到指定的位置 hsv.scrollTo((int)x,0); } /** * 设置菜单的颜色 * @param index */ public void setMenuColor(int index){ for (int i = 0; i <menus.size() ; i++) { if(i==index){ menus.get(i).setTextColor(Color.GREEN);//选中 }else{ menus.get(i).setTextColor(Color.BLACK); } } } private void getshuju(){ list.add("推荐"); list.add("新时代"); list.add("热点"); list.add("北京"); list.add("视屏"); list.add("图片"); list.add("娱乐"); list.add("问答"); list.add("汽车"); list.add("科技"); list.add("军事"); list.add("财金"); for (int i=0;i<list.size();i++){ texto = new TextView(getActivity()); texto.setText(list.get(i)); if(i==0){ texto.setTextColor(Color.GREEN); }else{ texto.setTextColor(Color.BLACK); } //记录texto下标值 texto.setTag(i); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(0,5,10,55); texto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String menu = ((TextView) view).getText().toString(); // Toast.makeText(Fragmentone.this,(Integer) view.getTag()+":"+menu,Toast.LENGTH_SHORT).show(); vpo.setCurrentItem((Integer) view.getTag()); } }); //添加子视图 ll.addView(texto,params); menus.add(texto); } } }
import android.content.Context; import android.support.v4.app.FragmentActivity; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import java.util.List; /** * Created by 丶未央 on 2018/1/9. */ class Myabapterone extends PagerAdapter{ Context context; List<Integer> list; public Myabapterone(Context context, List<Integer> list) { this.context=context; this.list=list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(context); imageView.setImageResource(list.get(position%list.size())); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }