<HorizontalScrollView android:id="@+id/horizontalScrollView" android:layout_width="match_parent" android:layout_below="@id/includea" android:scrollbars="none" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> </LinearLayout>
</HorizontalScrollView>
private String[] titles = {"头条", "娱乐", "科技", "信息",
"八卦", "北京", "上海", "天津","重庆", "大大燕网" };
horizontalScrollView = findViewById(R.id.horizontalScrollView);
list = new ArrayList<>(); for (int i=0;i<titles.length;i++){ TextView textView = new TextView(this); textView.setText(titles[i]); textView.setTextSize(20); textView.setId(i+1000); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); viewPager.setCurrentItem(id-1000); } }); //刚进程序第一个默认红色,其他为黑色 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,50,20,10); //添加到布局中 linearLayout.addView(textView,layoutParams); //添加到集合 list.add(textView); } //为viewpager设置适配器 viewPager.setAdapter(new Myadapter(getSupportFragmentManager())); //viewpager的监听 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { //滑动改变颜色 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { //list中存的是 textview for (int i = 0;i<list.size();i++){ if (position==i){ list.get(i).setTextColor(Color.RED); } else { list.get(i).setTextColor(Color.BLACK); } } //获取当前的textview TextView textView = list.get(position); //width是每次滑动的距离 int width = textView.getWidth() + 10; //让scrollView滑动 滑动距离是textview之间的间距 horizontalScrollView.scrollTo(width*position,0); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } class Myadapter extends FragmentPagerAdapter { public Myadapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { return Fragment1.getinstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } }
public class Fragment1 extends Fragment { public static Fragment getinstance(String title){ //创建Fragment1 Fragment1 fragment1 = new Fragment1(); //创建bundle Bundle bundle = new Bundle(); //添加值 bundle.putString("title",title); //把值添加到Arguments中 fragment1.setArguments(bundle); return fragment1; } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //获取Arguments Bundle arguments = getArguments(); //获取值 String title = arguments.getString("title"); //创建textview TextView textView = new TextView(getActivity()); //设置值 textView.setText(title); return textView; } }