权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.VIBRATE"/>
依赖
implementation 'com.github.andyoom:draggrid:v1.0.1'
allprojects {
repositories {
google()
jcenter()
maven {url "https://jitpack.io"}
}
}
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TabLayout
android:id="@+id/Tab_Layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable" />
<TextView
android:id="@+id/Add_Fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:text="+"
android:textSize="40sp" />
</RelativeLayout>
<android.support.v4.view.ViewPager
android:id="@+id/View_Pager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
activity:
public class MainActivity extends AppCompatActivity {
List<ChannelBean> channel;
private TabLayout Tab_Layout;
private TextView Add_Fragment;
private ViewPager View_Pager;
private List<Fragment> mList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
Add_Fragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChannelActivity.startChannelActivity(MainActivity.this,channel);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==ChannelActivity.REQUEST_CODE && resultCode==ChannelActivity.RESULT_CODE){
String jsonstr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Tab_Layout.removeAllTabs();
Gson gson=new Gson();
Type type=new TypeToken<List<ChannelBean>>(){}.getType();
channel = gson.fromJson(jsonstr, type);
for(int i=0;i<channel.size();i++){
if(channel.get(i).isSelect()){
/* try{
Tab_Layout.addTab(Tab_Layout.newTab(channel.get(i).getName()));
}catch (Exception e){
}*/
try{
Tab_Layout.addTab(Tab_Layout.newTab().setText(channel.get(i).getName()));
}catch (Exception e){
}
}
}
View_Pager.getAdapter().notifyDataSetChanged();
}
}
private void initData() {
channel = new ArrayList<>();
channel.add(new ChannelBean("今日头条", true));
channel.add(new ChannelBean("新闻", true));
channel.add(new ChannelBean("汽车", true));
channel.add(new ChannelBean("军事", true));
channel.add(new ChannelBean("科技", true));
channel.add(new ChannelBean("生活", true));
channel.add(new ChannelBean("服装", true));
channel.add(new ChannelBean("劳斯莱斯", true));
channel.add(new ChannelBean("美女", false));
channel.add(new ChannelBean("香麻油", false));
channel.add(new ChannelBean("高铁", false));
channel.add(new ChannelBean("冠军", false));
mList.add(new AFragment());
mList.add(new BFragment());
mList.add(new CFragment());
mList.add(new AFragment());
mList.add(new BFragment());
mList.add(new CFragment());
mList.add(new AFragment());
mList.add(new BFragment());
mList.add(new CFragment());
mList.add(new AFragment());
mList.add(new BFragment());
mList.add(new CFragment());
View_Pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
if (channelBeans.get(i).getName().equals("条目一")) {
return mList.get(2);
} else if (channelBeans.get(i).getName().equals("条目二")) {
return mList.get(1);
} else if (channelBeans.get(i).getName().equals("轮播")) {
return mList.get(0);
} else if (channelBeans.get(i).getName().equals("数据库")) {
return mList.get(3);
} else if (channelBeans.get(i).getName().equals("圆点")) {
return mList.get(4);
} else {
return mList.get(5);
}
//这是写匹配对应下标的,数据是随便写的
}
@Override
public int getCount() {
int count=0;
for(int i=0;i<channel.size();i++){
if(channel.get(i).isSelect()){
count++;
}
}
return count;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
Log.e("zzz",channel.get(position).getName()+"*******************");
return channel.get(position).getName();
}
});
Tab_Layout.setupWithViewPager(View_Pager);
}
private void initView() {
Tab_Layout = findViewById(R.id.Tab_Layout);
Add_Fragment = findViewById(R.id.Add_Fragment);
View_Pager = findViewById(R.id.View_Pager);
}
}