allprojects {
repositories {
google()
jcenter()
maven {url “https://jitpack.io”}
}
}
添加依赖
compile ‘com.github.andyoom:draggrid:v1.0.1’
package com.exam.liulei2018_11_19.frag;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.exam.liulei2018_11_19.R;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
public class Frag_01 extends Fragment {
ArrayList<ChannelBean> channelBeanList = new ArrayList<ChannelBean>();
private TabLayout tabLayout;
private ViewPager pager;
ArrayList<Fragment> fraglist = new ArrayList<>();
private MypagerAdapter mypagerAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_01,container,false);
//初始化组件
tabLayout = view.findViewById(R.id.ftablayout);
pager = view.findViewById(R.id.fviewpager);
Button button = view.findViewById(R.id.mbut);
//点击进入频道管理
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//传值
ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeanList);
}
});
//添加数据
channelBeanList.add(new ChannelBean("热点",true));
channelBeanList.add(new ChannelBean("北京",true));
channelBeanList.add(new ChannelBean("房价",true));
channelBeanList.add(new ChannelBean("旅游",false));
channelBeanList.add(new ChannelBean("条目1",false));
channelBeanList.add(new ChannelBean("条目2",false));
//添加fragment
for (int i = 0; i < channelBeanList.size(); i++) {
if (channelBeanList.get(i).isSelect()) {
String tabName = channelBeanList.get(i).getName();
tabLayout.addTab(tabLayout.newTab().setText(tabName));
if (i == 0) {
fraglist.add(new Frag_05());
}else if(i == 2){
fraglist.add(new Frag_06());
}else {
fraglist.add(new Frag_02());
}
}
}
//添加适配器
mypagerAdapter = new MypagerAdapter(getActivity().getSupportFragmentManager());
pager.setAdapter(mypagerAdapter);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(pager);
return view;
}
class MypagerAdapter extends FragmentPagerAdapter{
public MypagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fraglist.get(i);
}
@Override
public int getCount() {
return fraglist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return channelBeanList.get(position).getName();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();
Gson gson = new Gson();
channelBeanList = gson.fromJson(stringExtra, type);
tabLayout.removeAllTabs();
fraglist.clear();
for (int i = 0; i < channelBeanList.size(); i++) {
ChannelBean channelBean = channelBeanList.get(i);
if (channelBean.isSelect()) {
String tabName = channelBeanList.get(i).getName();
tabLayout.addTab(tabLayout.newTab().setText(tabName));
if ("热点".equals(channelBean.getName())) {
fraglist.add(new Frag_05());
}else if("北京".equals(channelBean.getName())){
fraglist.add(new Frag_02());
}else if("房价".equals(channelBean.getName())){
fraglist.add(new Frag_06());
}else {
fraglist.add(new Frag_02());
}
}
mypagerAdapter.notifyDataSetChanged();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
FragmentManager manager = getSupportFragmentManager();
Fragment frag_01 = manager.findFragmentByTag("frag_01");
frag_01.onActivityResult(requestCode, resultCode, data);
}