横向滑动的注意事项

来源:互联网 发布:晟元数据 副总 编辑:程序博客网 时间:2024/06/05 17:36

首先在XML中要注意
TabLayout要是:android.support.design.widget.TabLayout;
依附的是design,版本号25.3.1;
如果报错就把build.gradle中最下面的版本号改了,改成一样的,一般是26.+,改完了编译一下,如果不能编译的话,打开扳手,打开里面的Build下面的Build Tools,点击Gradle,右边有个Offline work,选中它,就是取消在线编译,改成了离线编译就可以了;
然后把命名空间复制过来,复制到XML,xmlns:app=”http://schemas.android.com/apk/res-auto”;
这是TabLayout的一些设置
< !–app:tabGravity=”center” 设置居中对齐
app:tabIndicatorColor=”@color/colorAccent” 下滑线的颜色
app:tabMode=”scrollable”设置tabLayoout菜单的模式,,,scrollable可以横向滚动
app:tabSelectedTextColor=”@color/colorPrimaryDark”选中的时候文字的颜色
app:tabTextColor=”@color/colorPrimary”文本默认的颜色
– >
//示例布局

<android.support.design.widget.TabLayout    android:layout_width="match_parent"    android:layout_height="40dp"    android:id="@+id/tab"    app:tabGravity="center"    app:tabIndicatorColor="@color/colorAccent"    app:tabMode="scrollable"    app:tabSelectedTextColor="@color/colorPrimaryDark"    app:tabTextColor="@color/colorPrimary"> < /android.support.design.widget.TabLayout>

(ViewPager是点击横向滑动时下面的页面也会切换)

    <android.support.v4.view.ViewPager    android:layout_below="@+id/tab"    android:id="@+id/vp"    android:layout_width="match_parent"    android:layout_height="match_parent" ></android.support.v4.view.ViewPager >

//在Main里

    List<String> list = new ArrayList<> ();//添加(横向滑动的条目)tab的显示项    list.add("头条");    list.add("军事");    list.add("娱乐");    list.add("新闻");    list.add("财经");    list.add("体育");    list.add("科技");    list.add("游戏");    //设置监听  就是选项卡选中时的监听    tab.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {        //选中的时候调用的方法        @Override        public void onTabSelected(TabLayout.Tab tab) {            String text = tab.getText().toString();            //text实际上就是应用里面:推荐,,,头条,,,军事,,,娱乐....            Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();        }        @Override        public void onTabUnselected(TabLayout.Tab tab) {        }        @Override        public void onTabReselected(TabLayout.Tab tab) {        }    });    vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {        //2.重写这个方法getPageTitle,,,得到当前页面的标题        @Override        public CharSequence getPageTitle(int position) {            return list.get(position);        }        @Override        public Fragment getItem(int position) {            NewsFragment newsFragment = new NewsFragment();            //应该要做的是传值,,,,去fragment里面获取,,,获取到值之后,,,在进行url路径的拼接            Bundle bundle = new Bundle();            bundle.putString("name","头条");            newsFragment.setArguments(bundle);           return newsFragment;        }        @Override        public int getCount() {            return list.size();        }    });    //3.将tabLayout和viewPager关联起来    tab.setupWithViewPager(vp);    **//NewsFragment类,是一个Fragment,** (切换页面里面的内容,ViewPager的内容):    他的布局可以是一个ListView,     //获取数据    String name =  getArguments().getString("name", "");    //判断    if (name.equals("头条")){        name = "top";    }else if (name.equals("军事")){        name = "junshi";    }else if (name.equals("社会")){        name = "shehui";    }else if (name.equals("财经")){        name = "caijing";    }else if (name.equals("国内")){        name = "guonei";    }    getDataFromNet(name);(此方法里是一个异步);

//MyAdapter类, 适配器:
//只是复用的优化

    if (view == null){        view = View.inflate(context,android.R.layout.simple_list_item_1,null);    }    TextView textView = view.findViewById(android.R.id.text1);    textView.setText(list.get(i).getTitle());    return view;
原创粉丝点击