<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <HorizontalScrollView android:id="@+id/hs" android:layout_width="350dp" android:layout_height="40dp" android:scrollbars="none"> <LinearLayout android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" ></LinearLayout> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/hs"/> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentTop="true" android:layout_marginEnd="15dp" android:text="+" android:textSize="30dp"/> </RelativeLayout>
public class FragmentOne1 extends Fragment { private ViewPager viewPager; private HorizontalScrollView horizontalScrollView; private LinearLayout linearLayout; private Button button; private TextView textView; List<TextView> list; private ArrayList<ChannelBean> channelBeans; private View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.fragmentone,container,false); initView(); initData(); return view; } private void initData() { //添加当前栏目的数据 channelBeans=new ArrayList<>(); channelBeans.add(new ChannelBean("头条",true)); channelBeans.add(new ChannelBean("河北",true)); channelBeans.add(new ChannelBean("娱乐",true)); channelBeans.add(new ChannelBean("科技",true)); channelBeans.add(new ChannelBean("信息",true)); channelBeans.add(new ChannelBean("八卦",true)); channelBeans.add(new ChannelBean("北京",false)); channelBeans.add(new ChannelBean("上海",false)); channelBeans.add(new ChannelBean("天津",false)); channelBeans.add(new ChannelBean("重庆",false)); channelBeans.add(new ChannelBean("大大燕网",false)); //先循环 list=new ArrayList<>(); for (int i=0;i<channelBeans.size();i++){ TextView textView=new TextView(getActivity()); textView.setText(channelBeans.get(i).getName()+""); textView.setTextSize(20); textView.setId(i); //给textview点击事件 textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id=view.getId(); viewPager.setCurrentItem(id); } }); ///刚进程序第一个默认红色,其他为黑色 if (i==1){ textView.setTextColor(Color.RED); }else { textView.setTextColor(Color.BLACK); } //创建linearLayout LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(50,10,50,10); //添加布局 linearLayout.addView(textView,layoutParams); //添加到集合中 list.add(textView); } //设置适配器 viewPager.setAdapter(new MyAdapter(getChildFragmentManager())); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { //滑动改变颜色 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 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 = list.get(i); int width = textView.getWidth() + 10; horizontalScrollView.scrollTo(position * width, 0); } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //将数据传入频道管理 ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeans); } }); } private void initView() { viewPager=view.findViewById(R.id.viewpager); horizontalScrollView=view.findViewById(R.id.hs); linearLayout=view.findViewById(R.id.linear); // button=view.findViewById(R.id.button); textView=view.findViewById(R.id.textview); } class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return FragmentSix.getInstance(list.get(position).getText().toString()); } @Override public int getCount() { return list.size(); } } }
public static FragmentSix getInstance(String title){ FragmentSix fragmentone=new FragmentSix(); Bundle bundle=new Bundle(); bundle.putString("title",title); fragmentone.setArguments(bundle); return fragmentone; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.fragment_toutiao,container,false); Bundle bundle=getArguments(); //String title = bundle.getString("title"); TextView textView=new TextView(getActivity()); //textView.setText(title); initFindViewById(); getData(); initView(); return view;