正在上映+即将上映

1.主Fragment里面嵌套

public class Ftwo extends Fragment {
   private TabLayout tabLayout;
   private ViewPager pager;
   private TabBase tabBase;
   @Nullable
   @Override
   public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       View v = inflater.inflate(R.layout.ftwo,container,false);
       tabLayout = v.findViewById(R.id.tablayout);
       pager = v.findViewById(R.id.item_pager);
       return v;
   }

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    //嵌套fragment
    pager.setAdapter(new TabBase(getChildFragmentManager()));
    tabLayout.setupWithViewPager(pager);
}
}

2.布局

<?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"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="0dp"
    android:layout_height="50dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    ></android.support.design.widget.TabLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/item_pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent "
    app:layout_constraintTop_toBottomOf="@id/tablayout"
    ></android.support.v4.view.ViewPager>
</android.support.constraint.ConstraintLayout>

3.嵌套页面

public class Stwo extends Fragment {

private PullToRefreshListView listView;
private TwoBase twoBase;
private String url;
private Dao dao;
private int page;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.sone,container,false);
    listView = v.findViewById(R.id.pullToRefresh);
    dao = new Dao();
    page = 1;
    return v;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    url = getArguments().getString("url");
    twoBase = new TwoBase(getActivity());
    listView.setAdapter(twoBase);

    listView.setMode(PullToRefreshBase.Mode.BOTH);
    listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
            page = 1;
            initdata();
        }

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

public void initdata(){
    NetUtil.getJson(String.format(url,page), NrBean.class, new NetUtil.CallBack<NrBean>() {
        @Override
        public void success(NrBean o) {
            //添加进去数据库
           /*dao.addAll(o.getResult());*/

            if(page == 1){
                twoBase.setdata(o.getResult());
            }else{
                twoBase.addDatas(o.getResult());
            }
            page++;
            listView.onRefreshComplete();
        }
    });
}

}

4.嵌套页面的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"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:id="@+id/pullToRefresh"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    ></com.handmark.pulltorefresh.library.PullToRefreshListView>
</android.support.constraint.ConstraintLayout>

5.主Fragment的适配

public class TabBase extends FragmentPagerAdapter {
    private String[] item = new String[]{"正在播放","即将上映"};
    private String[] urls = new String[]{
            "http://172.17.8.100/movieApi/movie/v1/findHotMovieList?count=10&page=%d",
            "http://172.17.8.100/movieApi/movie/v1/findReleaseMovieList?count=10&page=%d"
    };
    public TabBase(FragmentManager fm) {
        super(fm);
    }

@Override
public Fragment getItem(int i) {
    switch (i){
        default:
            Bundle bundle = new Bundle();
            bundle.putString("url",urls[i]);
            Stwo stwo = new Stwo();
            stwo.setArguments(bundle);
            return stwo;
    }
}

@Override
public int getCount() {
    return item.length;
}

@Nullable
@Override
public CharSequence getPageTitle(int position) {
    return item[position];
}
}

6.嵌套的适配器

public class TwoBase extends BaseAdapter {

private Context context;
private List<NrBean.ResultBean> list;

public TwoBase(Context context) {
    this.context = context;
    list= new ArrayList<>();
}

public void setdata(List<NrBean.ResultBean> lists){
    list.clear();
    list.addAll(lists);
    notifyDataSetChanged();
}

public void addDatas(List<NrBean.ResultBean> lists) {
    list.addAll(lists);
    notifyDataSetChanged();
}

@Override
public int getCount() {
    return list.size();
}

@Override
public NrBean.ResultBean getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if(convertView == null){
        convertView = View.inflate(context,R.layout.items,null);
        holder = new ViewHolder();
        holder.img = convertView.findViewById(R.id.imageView2);
        holder.t_name = convertView.findViewById(R.id.textView);
        holder.t_ms = convertView.findViewById(R.id.textView2);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }
    holder.t_name.setText(getItem(position).getName());
    holder.t_ms.setText(getItem(position).getSummary());
    ImageLoader.getInstance().displayImage(getItem(position).getImageUrl(),holder.img);
    return convertView;
}

class ViewHolder{
    TextView t_name,t_ms;
    ImageView img;
}
}

猜你喜欢

转载自blog.csdn.net/weixin_43587850/article/details/84204777