PullRefresh(上拉下拉)添加头布局Banner

XMl文件:


<?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"
    tools:context="com.example.yuekao_zonghe.Fragment.Frag3">


    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/f3_pull"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:divider="#19000000"
        android:dividerHeight="4dp"
        android:fadingEdge="none"
        android:fastScrollEnabled="false"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false"
        android:smoothScrollbar="true" />

</LinearLayout>

Banner-xml文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.youth.banner.Banner
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:id="@+id/f3_banner"></com.youth.banner.Banner>

</android.support.constraint.ConstraintLayout>


主代码:


import android.content.Context;
import android.os.AsyncTask;
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.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.example.yuekao_zonghe.Bean.BannerData;
import com.example.yuekao_zonghe.R;
import com.example.yuekao_zonghe.Utile.ImageloaderUtile;
import com.example.yuekao_zonghe.Utile.NetUtil;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Frag3 extends Fragment {
    public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/3/p/1";

    String[] girls={
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1511397748&di=fc26b4d019d84cae9afced694119e013&imgtype=jpg&er=1&src=http%3A%2F%2Fnews.cnhubei.com%2Fxw%2Fyl%2F201405%2FW020140530279662501386.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1511397780&di=553cd77bbefc58fad19f429490fd21ba&imgtype=jpg&er=1&src=http%3A%2F%2Fwww.sh.xinhuanet.com%2F136259092_14939501519491n.jpg",
            "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=471800453,1621863142&fm=11&gp=0.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1511397838&di=8b4ca4c35c11ca874b006590c015c455&imgtype=jpg&er=1&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F8cb1cb13495409237adfa6e39858d109b2de49fd.jpg",
            "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=551001357,2523081847&fm=27&gp=0.jpg"
    };
    ArrayList<BannerData.DataBean> list = new ArrayList<>();
    private Banner banner;
    private PullToRefreshListView pull;
    private Myadpater md;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //获取控件
        View view = inflater.inflate(R.layout.activity_frag3, null);
        View view2 = View.inflate(getActivity(), R.layout.bannerdata, null);
        //获取pull控件
        pull = view.findViewById(R.id.f3_pull);
        //允许下拉上拉
        pull.setMode(PullToRefreshBase.Mode.BOTH);
        //获取底层的listview
        ListView listView = pull.getRefreshableView();
        //添加头布局
        listView.addHeaderView(view2);
        //监听事件
        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                list.clear();
                getData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                getData();
            }
        });

        banner = view2.findViewById(R.id.f3_banner);
        banner.setImageLoader(new MyBanner());//加载图片的类
        banner.setImages(Arrays.asList(girls));//加入图片-
        banner.start();//开启轮播

        //适配器
        md = new Myadpater();
        pull.setAdapter(md);

        //获取网络数据
        getData();


        return view;
    }

    //获取网络数据的方法
    private void getData() {
        new MyAsynctask().execute(urlString);
    }


    //适配器
    private class Myadpater extends BaseAdapter {
        @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) {
            if (view == null) {
                view = View.inflate(getActivity(), R.layout.bannerdatatext, null);
            }
            ImageView img = view.findViewById(R.id.f3_img);
            ImageLoader.getInstance().displayImage(list.get(i).getPic_url(), img, ImageloaderUtile.getDisplayImageOption());
            TextView textView = view.findViewById(R.id.f3_text);
            textView.setText(list.get(i).getNews_title());
            return view;
        }
    }

    //获取网络数据
    private class MyAsynctask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... strings) {
            return NetUtil.getNetJson(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            BannerData bannerData = gson.fromJson(s, BannerData.class);
            List<BannerData.DataBean> data = bannerData.getData();

            list.addAll(data);

            //刷新适配器
            md.notifyDataSetChanged();
            //停止刷新
            pull.onRefreshComplete();

        }
    }

    private class MyBanner extends com.youth.banner.loader.ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            ImageLoader.getInstance().displayImage((String) path,imageView);
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值