tablayout横向滑动

来源:互联网 发布:淘宝网返利网 编辑:程序博客网 时间:2024/06/11 07:21

需要添加依赖,添加后会报错,改为26.+就行

xml布局代码


<RelativeLayoutxmlns: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="zhanghaijiao.bawei.com.tablayout_demo.MainActivity">
 
    <!--
         app:tabGravity="center"    设置居中对齐
        app:tabIndicatorColor="@color/colorAccent" 下滑线的颜色
        app:tabMode="scrollable"  设置tabLayoout菜单的模式,,,scrollable可以横向滚动  fixed:固定
        app:tabSelectedTextColor="@color/colorPrimaryDark"  选中的时候文字的颜色
        app:tabTextColor="@color/colorPrimary"       文本默认的颜色
    -->
 
    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/mytab"
        app:tabGravity="center"
        app:tabIndicatorColor="@color/colorAccent"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="@color/colorPrimaryDark"
        app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout>
 
 
 
</RelativeLayout>

只添加选项卡
myTab.addTab(myTab.newTab().setText("新闻"));

监听事件
 //选项卡被选中的监听事件
        myTab.setOnTabSelectedListener(newTabLayout.OnTabSelectedListener() {
            @Override
            publicvoid onTabSelected(TabLayout.Tab tab) {
                Toast.makeText(MainActivity.this,tab.getText().toString(),Toast.LENGTH_SHORT).show();
 
            }
 
            @Override
            publicvoid onTabUnselected(TabLayout.Tab tab) {
 
            }
 
            @Override
            publicvoid onTabReselected(TabLayout.Tab tab) {
 
            }
        });
 
显示tablayout的页面
publicclass Fragment_04 extendsFragment{
 
    privateTabLayout myTab;
    privateViewPager view_Pager;
    List<TabModel>  myTabs=newArrayList<>();
    @Nullable
    @Override
    publicView onCreateView(LayoutInflater inflater, @NullableViewGroup container, @NullableBundle savedInstanceState) {
 
        View view = inflater.inflate(R.layout.fragment4, container, false);
        myTab = (TabLayout) view.findViewById(R.id.my_tab);
        view_Pager = (ViewPager) view. findViewById(R.id.view_pager);
        returnview;
    }
 
    @Override
    publicvoid onActivityCreated(@NullableBundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
 
        myTabs.add(newTabModel("数据新闻","xbsjxw"));
        myTabs.add(newTabModel("快讯","txs"));
        myTabs.add(newTabModel("头条","toutiao"));
        myTabs.add(newTabModel("精编公告","news/mobile/jbgg"));
        myTabs.add(newTabModel("美股","news/mobile/mgxw"));
        myTabs.add(newTabModel("港股","news/mobile/ggxw"));
        myTabs.add(newTabModel("基金","news/mobile/jjxw"));
        myTabs.add(newTabModel("理财","news/mobile/lcxw"));
 
        //创建适配器
        view_Pager.setAdapter(newMyVpAdapter(getActivity().getSupportFragmentManager()));
 
        //将TabLayout与viewPager创建关联
        myTab.setupWithViewPager(view_Pager);
 
        //设置加载全部界面数据
        view_Pager.setOffscreenPageLimit(myTabs.size());
 
 
    }
 
    classMyVpAdapter extendsFragmentPagerAdapter {
        publicMyVpAdapter(FragmentManager fm) {
            super(fm);
        }
 
        //返回每个页面的title
        @Override
        publicCharSequence getPageTitle(intposition) {
            returnmyTabs.get(position).getName();
        }
 
        @Override
        publicFragment getItem(intposition) {
 
            //position:页面的下标
 
            Bundle b=newBundle();
            String urls = myTabs.get(position).getUrls();
            b.putString("key",urls);
            b.putString("pageIndex","1");
            v_fragment v_fragment=newv_fragment();
            v_fragment.setArguments(b);
 
 
 
            returnv_fragment;
        }
 
        //返回viewPager的加载的页面的数量
        @Override
        publicint getCount() {
            returnmyTabs.size();
        }
    }
}


tablayout显示对应界面的fragment:使用的xlistview列表,根据不同标题的不同url请求数据,接收到值进行的url拼接

publicclass v_fragment extendsFragment {
 
    privateXListView xlist_view;
 
    private String urlpart="http://mnews.gw.com.cn/wap/data/news/";
    privateString key_url;
    privateString Y="/page_";
    privateint pageIndex=1;//第1页的数据
    privateString j=".json";
    privateString url;
    privateList<UserBean_1.DataBean> data=newArrayList<>();
    privateMyAdapter_01 adapter;
    privateint operType=1;
    privateBundle bundle;
 
    @Nullable
    @Override
    publicView onCreateView(LayoutInflater inflater, @NullableViewGroup container, @NullableBundle savedInstanceState) {
        View view = inflater.inflate(R.layout.v_layout, container, false);
        xlist_view = view.findViewById(R.id.xlist_view);
        bundle = getArguments();
        if(bundle !=null){
              key_url = bundle.getString("key");
             url=urlpart+key_url+Y+pageIndex+j;
        }
        returnview;
    }
 
    @Override
    publicvoid onActivityCreated(@NullableBundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
 
       //对xlistview进行设置
        xlist_view.setPullLoadEnable(true);//上拉加载更多
        xlist_view.setPullRefreshEnable(true);//下拉刷新
 
 
        //设置接口
        xlist_view.setXListViewListener(newXListView.IXListViewListener() {
            @Override
            publicvoid onRefresh() {//刷新
                //刷新时,重新请求第1页的数据
                pageIndex=1;
 
                 url=urlpart+key_url+Y+pageIndex+j;
                //重新赋值
                operType=1;
                //获取数据
                MyTask task=newMyTask(newMyTask.Icallbacks() {
                    @Override
                    publicvoid getJsonData(String jsonstr) {
                        List<UserBean_1> datas=newArrayList<>();
                        Type type=newTypeToken<List<UserBean_1>>(){}.getType();
                        Gson gson=newGson();
                        datas= gson.fromJson(jsonstr, type);
                        UserBean_1 userBean_1 = datas.get(0);
 
                        data.addAll(userBean_1.getData());
                        //创建适配器
                        setAdapter();
                    }
                });
                task.execute(url);
 
            }
 
            @Override
            publicvoid onLoadMore() {//加载更多
                //页数增加
                pageIndex++;
                url=urlpart+key_url+Y+pageIndex+j;
                //重新赋值
                operType=2;//加载更多
                //获取数据
                MyTask task=newMyTask(newMyTask.Icallbacks() {
 
 
 
                    @Override
                    publicvoid getJsonData(String jsonstr) {
                        List<UserBean_1> datas=newArrayList<>();
                        Type type=newTypeToken<List<UserBean_1>>(){}.getType();
                        Gson gson=newGson();
                        datas= gson.fromJson(jsonstr, type);
                        UserBean_1 userBean_1 = datas.get(0);
                        data.addAll(userBean_1.getData());
                        //创建适配器
                        setAdapter();
                    }
                });
                task.execute(url);
 
            }
        });
        //获取数据
        MyTask task=newMyTask(newMyTask.Icallbacks() {
 
 
 
            @Override
            publicvoid getJsonData(String jsonstr) {
                List<UserBean_1> datas=newArrayList<>();
                Type type=newTypeToken<List<UserBean_1>>(){}.getType();
                Gson gson=newGson();
                datas= gson.fromJson(jsonstr, type);
                UserBean_1 userBean_1 = datas.get(0);
                data.addAll(userBean_1.getData());
                //创建适配器
               setAdapter();
            }
        });
        task.execute(url);
 
 
 
    }
    publicvoid setAdapter(){
        if(adapter==null){
            adapter = newMyAdapter_01(data,getActivity());
            xlist_view.setAdapter(adapter);
        }else{
            adapter.notifyDataSetChanged();
        }
 
    }
}

原创粉丝点击