Draggrid 频道管理

来源:互联网 发布:汽车用品淘宝 编辑:程序博客网 时间:2024/05/18 09:08

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>