tablayout添加依赖 compile 'com.android.support:design:25.3.1' compile 'com.android.support:support-v4:25.3.1' 2布局 <? 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" android:orientation="vertical" tools:context="com.example.firstweeka.MainActivity"> <!-- 滑动 app:tabMode="scrollable"--> <android.support.design.widget.TabLayout android:id="@+id/tablayout" app:tabMode="scrollable" android:layout_width="match_parent" android:layout_height="wrap_content"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager> </LinearLayout> 3.ListView布局 <? xml version = "1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:id="@+id/Frag_Image" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/Frag_Text" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="10dp" android:textSize="18sp"/> </LinearLayout> 4.MainActivity类 package com.example.firstweeka; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import com.example.firstweeka.adapter.VPAdataper; import com.example.firstweeka.bean.HomeBean; import com.example.firstweeka.bean.TitleBean; import com.example.firstweeka.fragment.NewsFragment; import com.google.gson.Gson; import org.xutils.common.Callback; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private TabLayout tablayout; private ViewPager vp; private List<TitleBean.ResultBean.DateBean> str_list = new ArrayList<>(); private List<Fragment> frag_list = new ArrayList<Fragment>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); addHttp("http://result.eolinker.com/gfGTLlHc049c6b450500b16971f52bd8e83f6b2fed305ab?uri=news"); } //加载网络数据 private void addHttp(String url) { RequestParams params = new RequestParams(); params.setUri(url); x.http().get(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Gson gson = new Gson(); TitleBean titleBean = gson.fromJson(result, TitleBean.class); List<TitleBean.ResultBean.DateBean> data = titleBean.getResult().getDate(); //循环遍历 for (int i = 0; i < titleBean.getResult().getDate().size(); i++) { str_list.addAll(data); NewsFragment newsFragment = new NewsFragment(); frag_list.add(newsFragment); } VPAdataper vpAdataper = new VPAdataper(getSupportFragmentManager(), str_list, frag_list); vp.setAdapter(vpAdataper); tablayout.setupWithViewPager(vp); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } private void initView() { tablayout = (TabLayout) findViewById(R.id.tablayout); vp = (ViewPager) findViewById(R.id.vp); //tablayout和ViewPager进行关联 // tablayout.setupWithViewPager(vp); } } 5.ViewPager适配器 package com.example.firstweeka.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import com.example.firstweeka.bean.TitleBean; import java.util.List; public class VPAdataper extends FragmentPagerAdapter { private List<TitleBean.ResultBean.DateBean> title_List; private List<Fragment> frag_List; public VPAdataper(FragmentManager fm, List<TitleBean.ResultBean.DateBean> title_List, List<Fragment> frag_List) { super(fm); this.frag_List = frag_List; this.title_List = title_List; } @Override public Fragment getItem(int position) { return frag_List.get(position); } @Override public int getCount() { return frag_List.size(); } @Override public CharSequence getPageTitle(int position) { return title_List.get(position).getTitle(); } } 6.碎片 package com.example.firstweeka.fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import com.example.firstweeka.R; import com.example.firstweeka.adapter.FragAdapter; import com.example.firstweeka.bean.HomeBean; import com.google.gson.Gson; import org.xutils.common.Callback; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.List; public class NewsFragment extends Fragment { private ListView Frag_List; private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; private List<HomeBean.DataBean> data; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.newsfrag, container, false); addFrag(); initView(view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); } private void initData() { } private void addFrag() { RequestParams params = new RequestParams(); params.setUri(url); x.http().get(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { if (result != null) { Gson gson = new Gson(); HomeBean homeBean = gson.fromJson(result, HomeBean.class); data = homeBean.getData(); FragAdapter frag = new FragAdapter(getActivity(), data); Frag_List.setAdapter(frag); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } private void initView(View view) { Frag_List = (ListView) view.findViewById(R.id.Frag_List); } } 7.Fragment的适配器 package com.example.firstweeka.adapter; import android.content.Context; import android.support.v4.app.FragmentActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.firstweeka.R; import com.example.firstweeka.bean.HomeBean; import org.xutils.x; import java.util.ArrayList; import java.util.List; public class FragAdapter extends BaseAdapter { private Context context; private List<HomeBean.DataBean> f_List = new ArrayList<>(); public FragAdapter(Context context, List<HomeBean.DataBean> data) { this.f_List = data; this.context = context; } @Override public int getCount() { return f_List.size(); } @Override public HomeBean.DataBean getItem(int position) { return f_List.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { convertView = View.inflate(context, R.layout.news_frag_image_text, null); viewHolder = new ViewHolder(); viewHolder.imageView = (ImageView) convertView.findViewById(R.id.Frag_Image); viewHolder.textView = (TextView) convertView.findViewById(R.id.Frag_Text); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.textView.setText(getItem(position).getNews_summary()); x.image().bind(viewHolder.imageView, getItem(position).getPic_url()); return convertView; } static class ViewHolder { ImageView imageView; TextView textView; } } 8.Xutils package com.example.firstweeka.application; import android.app.Application; import org.xutils.BuildConfig; import org.xutils.x; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); } }