主页面
package com.example.zhijun.yukaolian;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button xqy;
private Button zhuye;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xqy = (Button) findViewById(R.id.qqy);
zhuye = (Button) findViewById(R.id.zhuye);
FragmentManager manager=getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.frag,new Zhuye());
transaction.commit();
//主页
zhuye.setBackgroundColor(Color.RED);
//详情页
xqy.setBackgroundColor(Color.GRAY);
//主页的点击事件
zhuye.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager manager=getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.frag,new Zhuye());
transaction.commit();
zhuye.setBackgroundColor(Color.RED);
xqy.setBackgroundColor(Color.GRAY);
}
});
//详情页的点击事件
xqy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager manager=getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.frag,new Xqy());
transaction.commit();
zhuye.setBackgroundColor(Color.GRAY);
xqy.setBackgroundColor(Color.RED);
}
});
}
}
主页面
package com.example.zhijun.yukaolian;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
* Created by zhangyueyi on 2017/9/20.
*/
public class Zhuye extends Fragment {
private TabLayout tab;
private ViewPager vp;
private List<String> list;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v=View.inflate(getActivity(),R.layout.zy,null);
tab=v.findViewById(R.id.tab);
vp=v.findViewById(R.id.vp);
//标题要显示的tablayout集合
list=new ArrayList<String>();
list.add("social");
list.add("guonei");
list.add("world");
list.add("huabian");
list.add("tiyu");
list.add("nba");
list.add("football");
list.add("keji");
list.add("startup");
list.add("apple");
//ViewPager的点击事件
vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
public CharSequence getPageTitle(int position) {
//获取到下标
return list.get(position);
}
@Override
public Fragment getItem(int position) {
Fragments fragments=new Fragments();
Bundle bundle=new Bundle();
//通过传参的形式传到对应的参数给网络请求
if(list.get(position).endsWith("social")){
bundle.putString("name","social");
}else if(list.get(position).endsWith("guonei")){
bundle.putString("name","guonei");
}else if(list.get(position).endsWith("world")){
bundle.putString("name","world");
}else if(list.get(position).endsWith("huabian")){
bundle.putString("name","huabian");
}else if(list.get(position).endsWith("tiyu")){
bundle.putString("name","tiyu");
}else if(list.get(position).endsWith("nba")){
bundle.putString("name","nba");
}else if(list.get(position).endsWith("football")){
bundle.putString("name","football");
}else if(list.get(position).endsWith("keji")){
bundle.putString("name","keji");
}else if(list.get(position).endsWith("startup")){
bundle.putString("name","startup");
}else if(list.get(position).endsWith("apple")){
bundle.putString("name","apple");
}
fragments.setArguments(bundle);
return fragments;
}
@Override
public int getCount() {//总共的条目数
return list.size();
}
});
//tablayout和viewpager关联
tab.setupWithViewPager(vp);
return v;
}
}
详情页
package com.example.zhijun.yukaolian;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.bigkoo.convenientbanner.ConvenientBanner;
import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
import com.bigkoo.convenientbanner.holder.Holder;
import com.bigkoo.convenientbanner.listener.OnItemClickListener;
import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
/**
* Created by zhangyueyi on 2017/9/20.
*/
public class Xqy extends Fragment implements OnItemClickListener {
private String path;
private int shu=10;
private ListView xqy_lv;
private GridView xqy_gv;
private PullToRefreshLayout pull;
ConvenientBanner conven;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==0){
JsonBean bean= (JsonBean) msg.obj;
list = bean.getNewslist();
Log.i("aaa",list.toString());
myad = new Myad();
xqy_gv.setAdapter(myad);
myad1 = new Myad1();
xqy_lv.setAdapter(myad1);
}
}
};
private List<JsonBean.NewslistBean> list;
private String[] imgs=new String[]{//无线轮播请求到的网络图片实现轮播集合
"http://image.wufazhuce.com/FvVmWbqlle7jlUCTeozoval9NyBH",
"http://image.wufazhuce.com/FmDRnQ1XhReHRHB4jYqAPSx8htsP",
"http://image.wufazhuce.com/Fu6o0fqKHsI_TjdpPX3N2Kc99vNP",
"http://image.wufazhuce.com/FuPgOcbGDD9__fyuCdPBXb5pbA1C"};
//集合
List<String> datas;
ImageLoader imageLoader;
private Myad myad;
private Myad1 myad1;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//获取布局文件
View v=View.inflate(getActivity(),R.layout.xqy,null);
xqy_lv = v.findViewById(R.id.xqy_lv);
xqy_gv = v.findViewById(R.id.xqy_gv);
conven=v.findViewById(R.id.conven);
pull = v.findViewById(R.id.xqy_pull);
//得到缓存图片
imageLoader=ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity()));
//给datas集合和图片集合绑定
datas= Arrays.asList(imgs);
conven.setPages(new CBViewHolderCreator() {
@Override
public Object createHolder() {//用handler实现轮播
return new Ha();
}
},datas)
//设置指示器是否可见
.setPointViewVisible(true)
//设置自动切换(同时设置了切换时间间隔)
.startTurning(2000)
//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设
.setPageIndicator(new int[]{R.drawable.ic_page_indicator,R.drawable.ic_page_indicator_focused})
//设置指示器的方向(左、中、右)
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL)
//设置点击事件
.setOnItemClickListener(this)
//默认是TRUE
.setManualPageable(true);
getdata();
pull.setRefreshListener(new BaseRefreshListener() {
@Override
public void refresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
pull.finishRefresh();
path = "http://api.tianapi.com/startup/?key=4146a52d31ee75bedb005c5b50d9c249&num="+(shu++);
getdata();
myad.notifyDataSetChanged();
myad1.notifyDataSetChanged();
}
},3000);
}
@Override
public void loadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
pull.finishLoadMore();
path = "http://api.tianapi.com/startup/?key=4146a52d31ee75bedb005c5b50d9c249&num="+(shu++);
Log.i("aaa",shu+"dfghjdcfvbghnjkxcvbn");
getdata();
myad.notifyDataSetChanged();
myad1.notifyDataSetChanged();
}
},3000);
}
});
return v;
}
class Myad extends BaseAdapter {
private final int lin = 0;
private final int one = 1;
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v=View.inflate(getActivity(),R.layout.item1,null);
ImageView img = v.findViewById(R.id.item_img);
TextView item_text = v.findViewById(R.id.item_text);
item_text.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),img);
return v;
}
}
class Myad1 extends BaseAdapter {
private final int lin = 0;
private final int one = 1;
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v=View.inflate(getActivity(),R.layout.item2,null);
ImageView img = v.findViewById(R.id.item2img);
TextView item_text = v.findViewById(R.id.item2text);
item_text.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),img);
return v;
}
}
private void getdata() {//请求网络数据
new Thread(){//开辟一个线程
@Override
public void run() {//实现run方法
if(path==null) {//请求的网络地址拼接参数
path = "http://api.tianapi.com/startup/?key=4146a52d31ee75bedb005c5b50d9c249&num=" + shu;
}
try {//请求
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
//读取时间
connection.setReadTimeout(5000);
//链接超时
connection.setConnectTimeout(5000);
//链接成功返回200执行以下方法
if(connection.getResponseCode()==200){
InputStream stream = connection.getInputStream();
//解析和编码格式
String json=zhuan(stream,"utf-8");
Log.i("aaa",json);
Gson gson=new Gson();
//解析的bean类
JsonBean fromJson = gson.fromJson(json,JsonBean.class);
Log.i("aaa","aaaaaa");
//发送给handler
Message message = Message.obtain();
message.what=0;
message.obj=fromJson;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
super.run();
}
}.start();
}
private String zhuan(InputStream stream, String s) {//转成字节流的形式
try {
//读取的流
InputStreamReader inputStreamReader=new InputStreamReader(stream,s);
BufferedReader reader=new BufferedReader(inputStreamReader);
String ss=null;
StringBuilder builder=new StringBuilder();
while((ss=reader.readLine())!=null){
builder.append(ss);
}
inputStreamReader.close();
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public void onItemClick(int position) {
}
private class Ha implements Holder<String>{
private ImageView imageView;
@Override
public View createView(Context context) {
imageView=new ImageView(context);
//得到图片
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
@Override
public void UpdateUI(Context context, int position, String data) {
ImageLoader.getInstance().displayImage(data,imageView);
}
}
}
Frament
package com.example.zhijun.yukaolian;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
/**
* Created by zhangyueyi on 2017/9/20.
*/
public class Fragments extends Fragment{//帮助类主要实现刷新和加载listview列表
private PullToRefreshLayout pull;
private ListView pull_lv;
private int shu=10;
private String path;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==0){
JsonBean bean= (JsonBean) msg.obj;
list = bean.getNewslist();
Log.i("aaa",list.toString());
myad = new Myad();
pull_lv.setAdapter(myad);
}
}
};
private List<JsonBean.NewslistBean> list;
private String s;
private Myad myad;
class Myad extends BaseAdapter {
private final int lin=0;
private final int one=1;
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
int type=getItemViewType(i);
Diyi diyi;
Dier dier;
switch (type){
case lin:
if(view==null){
view=View.inflate(getActivity(),R.layout.diyi,null);
diyi=new Diyi();
diyi.yiimg1=view.findViewById(R.id.yiimg);
diyi.yitext=view.findViewById(R.id.yitext);
view.setTag(diyi);
break;
}
case one:
if(view==null){
view=View.inflate(getActivity(),R.layout.dier,null);
dier=new Dier();
dier.erimg1=view.findViewById(R.id.erimg1);
dier.erimg2=view.findViewById(R.id.erimg2);
dier.erimg3=view.findViewById(R.id.erimg3);
view.setTag(dier);
break;
}
default:break;
}
switch (type){
case lin:
diyi= (Diyi) view.getTag();
diyi.yitext.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),diyi.yiimg1);
break;
case one:
dier= (Dier) view.getTag();
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),dier.erimg1);
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),dier.erimg2);
ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),dier.erimg3);
break;
default:break;
}
return view;
}
@Override
public int getItemViewType(int position) {
int i=position%2;
if(i==0){
return 0;
}else{
return 1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
class Diyi{
ImageView yiimg1;
TextView yitext;
}
class Dier{
ImageView erimg1,erimg2,erimg3;
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v=View.inflate(getActivity(),R.layout.fragments,null);
pull = v.findViewById(R.id.pull);
pull_lv = v.findViewById(R.id.pull_lv);
Bundle bundle = getArguments();
s = bundle.getString("name", "social");
getdata(s);
pull.setRefreshListener(new BaseRefreshListener() {
@Override
public void refresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
shu++;
path = "http://api.tianapi.com/" + s + "/?key=4146a52d31ee75bedb005c5b50d9c249&num=" + shu;
getdata(s);
myad.notifyDataSetChanged();
pull.finishRefresh();
}
},3000);
}
@Override
public void loadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
shu++;
path = "http://api.tianapi.com/"+s+"/?key=4146a52d31ee75bedb005c5b50d9c249&num=" + shu;
getdata(s);
myad.notifyDataSetChanged();
pull.finishLoadMore();
}
},3000);
}
});
return v;
}
private void getdata(final String s) {
new Thread(){
@Override
public void run() {
path = "http://api.tianapi.com/" + s + "/?key=4146a52d31ee75bedb005c5b50d9c249&num=" + shu;
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
if(connection.getResponseCode()==200){
InputStream stream = connection.getInputStream();
String json=zhuan(stream,"utf-8");
Log.i("aaa",json);
Gson gson=new Gson();
JsonBean fromJson = gson.fromJson(json,JsonBean.class);
Log.i("aaa","aaaaaa");
Message message = Message.obtain();
message.what=0;
message.obj=fromJson;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
super.run();
}
}.start();
}
private String zhuan(InputStream stream, String s) {
try {
InputStreamReader inputStreamReader=new InputStreamReader(stream,s);
BufferedReader reader=new BufferedReader(inputStreamReader);
String ss=null;
StringBuilder builder=new StringBuilder();
while((ss=reader.readLine())!=null){
builder.append(ss);
}
inputStreamReader.close();
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
appliction
package com.example.zhijun.yukaolian;
import android.app.Application;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
/**
* Created by zhangyueyi on 2017/9/20.
*/
public class Img extends Application {//注意要在清单文件中注册name="Img"
@Override
public void onCreate() {//imgloder帮助类
DisplayImageOptions options=new DisplayImageOptions.Builder().showImageOnLoading(R.mipmap.ic_arrow_down).displayer(new FadeInBitmapDisplayer(2000)).cacheInMemory(true).cacheOnDisc(true).build();
ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).threadPoolSize(5).build();
ImageLoader.getInstance().init(configuration);
}
}
Bean
package com.example.zhijun.yukaolian;
import java.util.List;
/**
* Created by zhangyueyi on 2017/9/20.
*/
public class JsonBean {
/**
* code : 200
* msg : success
* newslist : [{"ctime":"2017-09-12 07:45","title":"80后团队操盘新媒体 六百岁故宫就这样炼成\u201c网红\u201d","description":"搜狐社会","picUrl":"http://photocdn.sohu.com/20170911/Img510908418_ss.jpeg","url":"http://news.sohu.com/20170911/n510908417.shtml"},{"ctime":"2017-09-04 06:40","title":"【塞罕坝造林人系列】刘军夫妇:做\u201c林场眼睛\u201d11年 无畏坚守护好绿","description":"搜狐社会","picUrl":"http://photocdn.sohu.com/20170903/Img509482875_ss.jpeg","url":"http://news.sohu.com/20170903/n509482874.shtml"},{"ctime":"2017-08-09 00:31","title":"辟谣:九寨沟县地震部分谣言网上流传 请大家不信谣不传谣","description":"搜狐社会","picUrl":"http://photocdn.sohu.com/20170809/Img505992955_ss.jpeg","url":"http://news.sohu.com/20170809/n505992954.shtml"},{"ctime":"2017-06-07 10:12","title":"舍不得媳妇套不住流氓!警察带女友约会\u201c钓色魔\u201d","description":"搜狐社会","picUrl":"","url":"http://news.sohu.com/20170607/n495984947.shtml"},{"ctime":"2017-06-06 06:19","title":"专题 | 三分钟带你看遍苹果WWDC 2017亮点","description":"网易VR","picUrl":"http://img4.cache.netease.com/photo/0009/2017-06-06/s_CM7TROL26PGI0009.jpg","url":"http://tech.163.com/special/S1496632396292/"},{"ctime":"2017-06-06 07:41","title":"2400元的音箱贵不贵?苹果HomePod现场体验","description":"网易VR","picUrl":"http://img3.cache.netease.com/photo/0009/2017-06-06/s_CM7TRJ646PGI0009.jpg","url":"http://tech.163.com/photoview/6PGI0009/15180.html"},{"ctime":"2017-06-06 08:29","title":"苹果HomePod想占据你的家,但来得太迟了","description":"网易VR","picUrl":"http://cms-bucket.nosdn.127.net/b9bd4f9b5c6f4eee89ecaf71b641df7820170606083407.jpeg","url":"http://tech.163.com/17/0606/08/CM818M3600098GJ5.html"},{"ctime":"2017-06-02 09:43","title":"武汉理工大学两男生寝室斗殴 场面血腥(组图)","description":"搜狐社会","picUrl":"","url":"http://news.sohu.com/20170602/n495366391.shtml"},{"ctime":"2017-05-24 13:13","title":"费孝通民族研究的文化内涵","description":"搜狐社会","picUrl":"","url":"http://news.sohu.com/20170524/n494263638.shtml"},{"ctime":"2017-05-23 09:15","title":"机场:中国籍乘客回国如无身份证 须办临时证明","description":"搜狐社会","picUrl":"","url":"http://news.sohu.com/20170523/n494079084.shtml"}]
*/
private int code;
private String msg;
private List<NewslistBean> newslist;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<NewslistBean> getNewslist() {
return newslist;
}
public void setNewslist(List<NewslistBean> newslist) {
this.newslist = newslist;
}
public static class NewslistBean {
/**
* ctime : 2017-09-12 07:45
* title : 80后团队操盘新媒体 六百岁故宫就这样炼成“网红”
* description : 搜狐社会
* picUrl : http://photocdn.sohu.com/20170911/Img510908418_ss.jpeg
* url : http://news.sohu.com/20170911/n510908417.shtml
*/
private String ctime;
private String title;
private String description;
private String picUrl;
private String url;
public String getCtime() {
return ctime;
}
public void setCtime(String ctime) {
this.ctime = ctime;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPicUrl() {
return picUrl;
}
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "NewslistBean{" +
"ctime='" + ctime + '\'' +
", title='" + title + '\'' +
", description='" + description + '\'' +
", picUrl='" + picUrl + '\'' +
", url='" + url + '\'' +
'}';
}
}
}
下面是布局文件
主页
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.zhijun.yukaolian.MainActivity">
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="150dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#fff">
<ImageView
android:id="@+id/dl_img"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/name1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dl_img"
android:gravity="center"
android:text="1509c张跃议" />
<TextView
android:id="@+id/xian1"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/name1"
android:background="#000" />
<TextView
android:id="@+id/xw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/xian1"
android:gravity="center"
android:text="新闻" />
<TextView
android:id="@+id/xian2"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/xw"
android:background="#000" />
<TextView
android:id="@+id/yl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/xian2"
android:gravity="center"
android:text="娱乐" />
<TextView
android:id="@+id/xian3"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/yl"
android:background="#000" />
<TextView
android:id="@+id/sh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/xian3"
android:gravity="center"
android:text="社会" />
<TextView
android:id="@+id/xian4"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/sh"
android:background="#000" />
<TextView
android:id="@+id/js"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/xian4"
android:gravity="center"
android:text="军事" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/zhuye"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="主页" />
<Button
android:id="@+id/qqy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="详情页" />
</LinearLayout>
<FrameLayout
android:id="@+id/frag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll"></FrameLayout>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
详情页
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="#ff0"
android:orientation="vertical"
android:layout_height="match_parent">
<com.bigkoo.convenientbanner.ConvenientBanner
android:layout_width="match_parent"
android:layout_height="150dp"
android:id="@+id/conven"></com.bigkoo.convenientbanner.ConvenientBanner>
<com.jwenfeng.library.pulltorefresh.PullToRefreshLayout
android:layout_width="match_parent"
android:id="@+id/xqy_pull"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView
android:layout_width="wrap_content"
android:layout_height="150dp"
android:numColumns="4"
android:id="@+id/xqy_gv"></GridView>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/xqy_gv"
android:id="@+id/xqy_lv"></ListView>
</RelativeLayout>
</com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>
</LinearLayout>
主页
<?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"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tab"
app:tabIndicatorColor="#052efc"
app:tabMode="scrollable"
app:tabIndicatorHeight="5dp"
app:tabSelectedTextColor="#f9ec03"
app:tabTextColor="#f204ce"
android:fillViewport="false"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"
android:layout_below="@+id/tab"></android.support.v4.view.ViewPager>
</RelativeLayout>
item1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<ImageView
android:id="@+id/item_img"
android:layout_width="70dp"
android:layout_height="70dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_text"
/>
</LinearLayout>
item2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/item2img"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item2text"
/>
</LinearLayout>
frament
<?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">
<com.jwenfeng.library.pulltorefresh.PullToRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pull"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pull_lv"></ListView>
</com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>
</RelativeLayout>
分页要用的第一布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@mipmap/ic_launcher"
android:id="@+id/yiimg"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/yitext"/>
</LinearLayout>
分页要用的第二布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/erimg1"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/erimg2"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/erimg3"/>
</LinearLayout>
注意要添加的依赖
compile files('libs/gson-2.2.4.jar')
compile 'com.jwenfeng.pulltorefresh:library:1.0.3'
compile 'com.bigkoo:convenientbanner:2.0.5'
compile files('libs/universal-image-loader-1.9.3-with-sources.jar')
compile project(':pullToRefreshLibrary')