public class frag4 extends Fragment implements View.OnClickListener { private LinearLayout ll_head; private HorizontalScrollView hsl; private ViewPager vp; private String[] titles; private List<TextView> textlist; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_frag4, container, false); ll_head = (LinearLayout) view.findViewById(R.id.ll); hsl = view.findViewById(R.id.hsl); vp = view.findViewById(R.id.vp); titles = new String[] { "头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津", "重庆", "大大燕网" }; //设置放置TextView的集合 textlist = new ArrayList<TextView>(); for (int i = 0; i < titles.length; i++) { TextView textView = new TextView(getActivity()); textView.setText(titles[i]); // textView.setWidth(100); textView.setTextSize(20); if (i == 0) { textView.setTextColor(Color.RED); } else { textView.setTextColor(Color.BLACK); } // 处理标题文字的点击事件 textView.setOnClickListener(this); // 定义id textView.setId(i + 10000); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(20, 10, 20, 10); ll_head.addView(textView, params); // 往集合中添加textView textlist.add(textView); } vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public int getCount() { return titles.length; } @Override public Fragment getItem(int position) { return Fragment0.getInstance(titles[position]); } }); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < textlist.size(); i++) { if (position == i) { //注意这个判断条件; // 1 0123456 textlist.get(i).setTextColor(Color.RED); } else { textlist.get(i).setTextColor(Color.BLACK); } } TextView textView = textlist.get(position); int width = textView.getWidth(); // 计算该滑到什么位置 hsl.scrollTo((width + 20) * position, 0); } @Override public void onPageScrollStateChanged(int state) { } }); return view; } @Override public void onClick(View view) { int id = view.getId(); vp.setCurrentItem(id - 10000);//得到的是viewpagee的下标; } }
HorizontalScrollView与Fragment基础使用
最新推荐文章于 2018-03-01 10:37:36 发布