public class ViewPagerIndacaterActivity extends AppCompatActivity implements View.OnClickListener{ @BindView(R.id.ll_head) LinearLayout llHead; @BindView(R.id.hsv) HorizontalScrollView hsv; @BindView(R.id.viewpager) ViewPager viewpager; private String[] titles; private ArrayList<TextView> textViewList; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_viewpager_indacater); ButterKnife.bind(this); titles = new String[] { "头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津", "重庆", "大大燕网" }; textViewList = new ArrayList<TextView>(); for (int i = 0; i < titles.length ; i++) { TextView textView = new TextView(ViewPagerIndacaterActivity.this); textView.setText(titles[i]); textView.setTextSize(20); textView.setId(i+1000); textView.setOnClickListener(this); //先定义出来layoutParams,把要配的配置等封装到layoutParams, if(i ==0){ textView.setTextColor(Color.RED); }else { textView.setTextColor(Color.BLACK); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(20,10,20,10); //添加view的时候,用参数; llHead.addView(textView,layoutParams); textViewList.add(textView); } MAdapter mAdapter = new MAdapter(getSupportFragmentManager()); viewpager.setAdapter(mAdapter); //设置viewpager滑动的监听; viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i = 0; i < textViewList.size(); i++) { if (position == i) { textViewList.get(i).setTextColor(Color.RED); } else { textViewList.get(i).setTextColor(Color.BLACK); } } //让scrollView滑动 TextView textView = textViewList.get(position); //20为margin值; int width = textView.getWidth(); hsv.scrollTo((width*position)+20 ,0); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } class MAdapter extends FragmentPagerAdapter{ public MAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return IndicaterFragment.getInstance(textViewList.get(position).getText().toString()); } @Override public int getCount() { return textViewList.size(); } } //实现onClick方法 @Override public void onClick(View v) { int id = v.getId(); viewpager.setCurrentItem(id-1000); } }
111
最新推荐文章于 2023-01-17 11:01:18 发布