1.导入依赖到自己Gradle中
compile 'com.github.andyoom:draggrid:v1.0.1'
2.在项目的build.gradle中添加
allprojects {
repositories {
jcenter()
//下面这句才是加上的,上面的自带 的
maven {url "https://jitpack.io"}}
}
3.添加权限
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 震动权限 -->
<uses-permission android:name="android.permission.VIBRATE"/>
4:在Activity下主要代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TabLayout mTab; private ImageButton mImbtn; ArrayList<ChannelBean> channelBeanList; private String stringExtra;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } //tab展示数据 private void initData() { channelBeanList=new ArrayList<ChannelBean>(); channelBeanList.add(new ChannelBean("热点",true)); channelBeanList.add(new ChannelBean("军事",true)); channelBeanList.add(new ChannelBean("八卦",true)); channelBeanList.add(new ChannelBean("游戏",true)); channelBeanList.add(new ChannelBean("宠物",true)); channelBeanList.add(new ChannelBean("汽车",false)); channelBeanList.add(new ChannelBean("热卖",false)); channelBeanList.add(new ChannelBean("外卖",false)); channelBeanList.add(new ChannelBean("条目1",false)); channelBeanList.add(new ChannelBean("条目2",false)); channelBeanList.add(new ChannelBean("条目3",false)); channelBeanList.add(new ChannelBean("条目4",false)); //遍历给Tablayout赋值 for (int i = 0; i < channelBeanList.size(); i++) { mTab.addTab(mTab.newTab().setText(channelBeanList.get(i).getName())); } } private void initView() { mTab = (TabLayout) findViewById(R.id.tab); mImbtn = (ImageButton) findViewById(R.id.imbtn); mImbtn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.imbtn: ChannelActivity.startChannelActivity(MainActivity.this,channelBeanList); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE){//如果为TRUE表示频道管理回调回来的 stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);//得到栏目管理结果 mTab.removeAllTabs();//清空之前栏目 Gson gson = new Gson();//进行gson解析 Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType(); channelBeanList=gson.fromJson(stringExtra,type); //遍历结果更新tablayout for (int i = 0; i <channelBeanList.size() ; i++) { if (channelBeanList.get(i).isSelect()){ mTab.addTab(mTab.newTab().setText(channelBeanList.get(i).getName())); } } } } }
5:XML布局文件:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" app:tabMode="scrollable" /> <ImageButton android:id="@+id/imbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/channel_glide" /> </LinearLayout>