Xml布局 tablayout需添加依赖 compile 'com.android.support:design:26.0.0-alpha1'
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
app:tabGravity="center"
app:tabIndicatorColor="@color/colorAccent"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabTextColor="@color/colorPrimary"
android:layout_height="40dp">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
Fragment中
public class Home_Fragment extends Fragment{
private TabLayout tabLayout;
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main_home_layout,container, false);
tabLayout = view.findViewById(R.id.tablayout);
viewPager = view.findViewById(R.id.viewpager);
return view;
}
//定义tablayout标题菜单
final String[] titles = new String[]{"推荐","十九大","热点","北京","视频","社会","科技","汽车","体育","财经","娱乐"};
//给viewpager设置适配器
viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
///重写获得tablayout标题菜单的方法
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new Title_TJ_Fragment();
return fragment;
}
@Override
public int getCount() {
return titles.length;
}
});
//与viewpager关联
tabLayout.setupWithViewPager(viewPager);
}
}
填充viewpager的fragment
public class Title_TJ_Fragment extends Fragment {
List<DataDataBean.NewslistBean> lists = new ArrayList();
private MyAdapter adapter;
private int page_num=10;
private PullToRefreshListView pullToRefreshListView;
private ILoadingLayout startLabels;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.title_tj_layout,container, false);
pullToRefreshListView = view.findViewById(R.id.refresh_list_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getDataFromNet();
///*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
startLabels = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
//设置监听器
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
RefreshData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num=page_num+10;
getDataFromNet();
}
});
}
private void RefreshData() {
lists.clear();
//接口地址
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num="+page_num;
NetDataUtil.getData(getActivity(), path, new JsonStringCallaBack() {
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
lists.addAll(0,dataDataBean.getNewslist());
setAdapter();
//停止刷新
pullToRefreshListView.onRefreshComplete();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat item = new SimpleDateFormat("HH:mm");
startLabels.setLastUpdatedLabel(item.format(date));
}
});
}
//获取网络数据
private void getDataFromNet() {
//接口地址
Log.d("TAG","获得pager_num为"+"====================================="+page_num);
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num="+page_num;
NetDataUtil.getData(getActivity(), path, new JsonStringCallaBack() {
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
lists.addAll(dataDataBean.getNewslist());
setAdapter();
//停止加载更多
pullToRefreshListView.onRefreshComplete();
}
});
}
//单独抽取设置适配器的方法
private void setAdapter() {
//设置适配器
if (adapter==null) {
adapter = new MyAdapter(getActivity(), lists);
pullToRefreshListView.setAdapter(this.adapter);
}else{
adapter.notifyDataSetChanged();
}
}
}