private List<TextView> list; private List<ChannelBean> Beans= new ArrayList<>(); private Button button; private ViewPager viewpager; private HorizontalScrollView horizontal; private LinearLayout linear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取ID button= findViewById(R.id.button); horizontal= findViewById(R.id.horizontal); linear = findViewById(R.id.linear); viewpager =findViewById(R.id.viewpager); //定义数据源 list = new ArrayList<>(); Beans.add(new ChannelBean("头条",true)); Beans.add(new ChannelBean("娱乐",true)); Beans.add(new ChannelBean("军事",true)); Beans.add(new ChannelBean("经济",true)); Beans.add(new ChannelBean("本地",true)); Beans.add(new ChannelBean("音乐",true)); Beans.add(new ChannelBean("视频",true)); Beans.add(new ChannelBean("医疗",true)); Beans.add(new ChannelBean("世界杯",true)); ///for循环 for (int i = 0; i<Beans.size();i++){ //创建Textview TextView textView = new TextView(this); textView.setText(Beans.get(i).getName()+""); textView.setTextSize(20); textView.setId(i+1000); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id = view.getId(); viewpager.setCurrentItem(id-1000); } }); //点击字体换色 if(i==0){ textView.setTextColor(Color.RED); }else{ textView.setTextColor(Color.BLACK); } //创建layout LinearLayout.LayoutParams layout= new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); layout.setMargins(40,20,40,10); linear.addView(textView,layout); list.add(textView); } //创建适配器 viewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int i) { return FragmentOne.getinstence(list.get(i).getText().toString()); } @Override public int getCount() { return list.size(); } }); //设置监听 viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { for (int k = 0;k<list.size();k++){ if(k==i){ list.get(k).setTextColor(Color.RED); }else{ list.get(k).setTextColor(Color.BLACK); } TextView view = list.get(i); horizontal.scrollTo((view.getWidth()+50)*i,0); } } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int i) { } }); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //将数据传入频道管理 ChannelActivity.startChannelActivity(MainActivity.this,Beans); } }); }
public static FragmentOne getinstence(String text){ FragmentOne fragmentOne = new FragmentOne(); //创建bundle Bundle bundle = new Bundle(); bundle.putString("text",text); fragmentOne.setArguments(bundle); return fragmentOne; }
---------------------------------------------
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal" > <HorizontalScrollView android:id="@+id/horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="9" android:scrollbars="none" > <LinearLayout android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"></LinearLayout> </HorizontalScrollView> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="频道管理" /> </LinearLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="9" /> </LinearLayout>