1、首先在项目的build下注册
allprojects {
repositories {
jcenter()
//下面这句maver才是加上的,上面的自带 的
maven {url "https://jitpack.io"}
}
}
2、然后在app下的build中导入依赖
compile 'com.github.andyoom:draggrid:v1.0.1'
3、代码段
public class MainActivity extends AppCompatActivity {
ArrayList<ChannelBean> list = new ArrayList<ChannelBean>();
ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();
private String jsonStr;
TabLayout tb;
ViewPager vp;
Button btn;
MAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
initdata();
}
private void initview() {
//获取控件
tb = (TabLayout) findViewById(R.id.tb);
vp = (ViewPager) findViewById(R.id.vp);
btn = (Button) findViewById(R.id.btn);
//点击按钮进入频道管理
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ChannelActivity提供的打开自己的方法;
ChannelActivity.startChannelActivity(MainActivity.this,list);
}
});
}
//添加数据
private void initdata() {
list.add(new ChannelBean("热点",true));
list.add(new ChannelBean("军事",true));
list.add(new ChannelBean("八卦",true));
list.add(new ChannelBean("游戏",true));
list.add(new ChannelBean("宠物",true));
list.add(new ChannelBean("汽车",false));
list.add(new ChannelBean("热卖",false));
list.add(new ChannelBean("外卖",false));
list.add(new ChannelBean("太阳花",false));
list.add(new ChannelBean("九三",false));
for (int i = 0; i <list.size() ; i++) {
if (list.get(i).isSelect()) {
if (i == 0) {
fragmentList.add(new FRag_01());
}else if (i == 1){
fragmentList.add(new FRag_02());
}else if (i == 2){
fragmentList.add(new FRag_03());
}else if (i == 3){
fragmentList.add(new FRag_04());
}else if (i == 4){
fragmentList.add(new FRag_05());
}else {
fragmentList.add(new FRag_06());
}
}
}
//适配器
mAdapter = new MAdapter(getSupportFragmentManager());
vp.setAdapter(mAdapter);
//tablayout模式
tb.setTabMode(TabLayout.MODE_SCROLLABLE);
//关联viewpager
tb.setupWithViewPager(vp);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//获取传过来的数据
String json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Log.e("zmz","00"+json);
Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();
Log.e("zmz","11"+type);
Gson gson = new Gson();
//传入新的集合
list = gson.fromJson(json, type);
//清空fragment
tb.removeAllTabs();
fragmentList.clear();
for (int i = 0; i <list.size() ; i++) {
ChannelBean channelBean = list.get(i);
//创建新数据
if (channelBean.isSelect()) {
String name = channelBean.getName();
Log.e("zmz","00"+name);
tb.addTab(tb.newTab().setText(name));
if ("热点".equals(channelBean.getName())) {
//Log.e("zmz","热点");
fragmentList.add(new FRag_01());
}else if("军事".equals(channelBean.getName())){
//Log.e("zmz","军事");
fragmentList.add(new FRag_02());
}else if("八卦".equals(channelBean.getName())){
//Log.e("zmz","八卦");
fragmentList.add(new FRag_03());
}else if("游戏".equals(channelBean.getName())){
// Log.e("zmz","游戏");
fragmentList.add(new FRag_04());
}else if("宠物".equals(channelBean.getName())){
//Log.e("zmz","宠物");
fragmentList.add(new FRag_05());
}else {
Log.e("zmz","其他");
fragmentList.add(new FRag_06());
}
}
}
//刷新适配器
mAdapter.notifyDataSetChanged();
}
private class MAdapter extends FragmentPagerAdapter {
public MAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fragmentList.get(i);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return list.get(position).getName();
}
}
}
布局
<?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=".MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<android.support.design.widget.TabLayout
android:id="@+id/tb"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>