extends Fragment { private View view; private ViewPager pv; private TabLayout tab; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1,container,false); pv = view.findViewById(R.id.pv); tab = view.findViewById(R.id.tab); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<>(); list.add("推荐"); list.add("社会"); list.add("国内"); list.add("国际"); list.add("娱乐"); list.add("体育"); list.add("军事"); list.add("科技"); list.add("财经"); list.add("时尚"); for (int i = 0; i< list.size(); i++){ tab.addTab(tab.newTab().setText( list.get(i))); } FraGment1 fn=new FraGment1(); FragmentManager childFragmentManager = getChildFragmentManager(); ListPagerBase li=new ListPagerBase(childFragmentManager,fn, list); pv.setAdapter(li); tab.setupWithViewPager(pv); tab.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { String s = tab.getText().toString(); Toast.makeText(getActivity(),"---"+s,Toast.LENGTH_SHORT).show(); for (int i = 0; i< list.size(); i++){ if(s.equals(list.get(i))){ pv.setCurrentItem(i); } } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } }
//控件
<android.support.design.widget.TabLayout android:id="@+id/tab" app:tabGravity="center" app:tabIndicatorColor="@color/colorAccent" app:tabMode="scrollable" app:tabSelectedTextColor="@color/colorPrimaryDark" app:tabTextColor="@color/colorPrimary" android:layout_width="match_parent" android:layout_height="40dp" /> <android.support.v4.view.ViewPager android:id="@+id/pv" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager>
//适配器
extends FragmentPagerAdapter { FragmentManager fm; //获得一个事物 Fragment listfragment; //获得一个fragment对象 List<String> list;//获得tab所有的标题 public ListPagerBase(FragmentManager fm, Fragment listfragment, List<String> list) { super(fm); this.fm= fm; this.listfragment=listfragment; this.list=list; } @Override//添加标题tab public CharSequence getPageTitle(int position) { return list.get(position); } @Override//返回一个fragment视图 public Fragment getItem(int position) { listfragment=new FraGment1(); Bundle bundle=new Bundle(); bundle.putString("name",list.get(position)); listfragment.setArguments(bundle); return listfragment; } @Override public int getCount() { return list.size(); } }
// FraGment1
extends Fragment { private View view; private XListView lv; int count=0; ListBase base; private String name; List<MyBean.ResultBean.DataBean> data=new ArrayList<>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment2,container,false); lv = view.findViewById(R.id.xlv); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); name = getArguments().getString("name"); sta(name,1); lv.setPullLoadEnable(true); lv.setPullRefreshEnable(true); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { } }); lv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { sta(name,1); } @Override public void onLoadMore() { sta(name,2); } }); } public void sta(String name, final int n){ if(name.equals("国内")){ String path=" http://v.juhe.cn/toutiao/index?type=guonei&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); }else if(name.equals("国际")){ String path=" http://v.juhe.cn/toutiao/index?type=guoji&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); }else if(name.equals("娱乐")){ String path="http://v.juhe.cn/toutiao/index?type=yule&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("科技")){ String path=" http://v.juhe.cn/toutiao/index?type=keji&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("军事")){ String path=" http://v.juhe.cn/toutiao/index?type=junshi&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("体育")){ String path="http://v.juhe.cn/toutiao/index?type=tiyu&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("财经")){ String path="http://v.juhe.cn/toutiao/index?type=caijing&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("时尚")){ String path="http://v.juhe.cn/toutiao/index?type=shishang&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } else if(name.equals("社会")){ String path="http://v.juhe.cn/toutiao/index?type=shehui&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); }else if(name.equals("推荐")){ String path= "http://v.juhe.cn/toutiao/index?type=top&key=0a5fd1c391de594825830f01ed2817b4"; st(path,n); } } public void st(String path,final int n){ UrlWangLuo.newUrl(getActivity(), path, new JieKou() { @Override public void jieKou(String json) { Gson gson=new Gson(); MyBean myBean = gson.fromJson(json, MyBean.class); data.addAll(myBean.getResult().getData()); if(n==2){ if(base==null){ base= new ListBase(data,getActivity()); lv.setAdapter(base); }else{ base.notifyDataSetChanged(); lv.stopLoadMore(); } }else if(n==1){ if(base==null){ base= new ListBase(data,getActivity()); lv.setAdapter(base); }else{ base.notifyDataSetChanged(); } Date dt=new Date(System.currentTimeMillis()); SimpleDateFormat sim=new SimpleDateFormat("HH:mm"); lv.setRefreshTime(sim.format(dt)); lv.stopRefresh(); } } }); } }
//控件
<com.example.wanghao.xlistview.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent"></com.example.wanghao.xlistview.XListView>