资讯专栏INFORMATION COLUMN

Android-快速实现ViewPager+Tablayout的联动效果

forsigner / 2599人阅读

摘要:快速实现的联动效果在项目开发中很多场景都会碰到栏切换的效果,实现的思路也有很多种,,等方式都可以实现,这里就说下的实现方式是推出来的一个风格的控件,是专门用来实现栏效果的功能强大,使用方便灵活引入依赖库布局文件提供了很多的属性可以设

Android-快速实现ViewPager+Tablayout的联动效果

在项目开发中很多场景都会碰到tab栏切换的效果,实现的思路也有很多种,tabhost+fragment,radionbtton+viewpager等方式都可以实现,这里就说下tablayout+viewpager的实现方式;tablayout是android5.0推出来的一个MaterialDesign风格的控件,是专门用来实现tab栏效果的;功能强大,使用方便灵活;

引入依赖库:

implementation "com.android.support:support-v4:26.1.0"
implementation "com.android.support:design:26.1.0"

布局文件:


xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:orientation="vertical">





tablayout提供了很多的属性可以设置:

app:tabIndicatorColor 指示器颜色
app:tabTextColor tab栏字体颜色
app:tabSelectedTextColor tab栏字体被选颜色
app:tabIndicatorHeight 指示器高度
app:tabBackground tab背景颜色
app:tabMaxWidth tab栏最大宽度
app:tabTextAppearance tab栏字体样式
app:tabMinWidth tab栏最小宽度

这些属性可以下xml中设置,也可以使用代码进行设置;需要注意这两个属性:

app:tabMode="";有scrollable和fixed两个属性值
scrollable:可滑动;
fixed:不能滑动,平分tabLayout宽度;

app:tabGravity="";有center和fill两个属性值
fill:tabs平均填充整个宽度;
center:tab居中显示;

页面实现方式:

public static final String[] tabTitles = new String[]{"全部", "代付款", "代发货", "配送中"};

private TabLayout mTabLayout;
private ViewPager mViewPager;
private List mFragments = new ArrayList();

mTabLayout = (TabLayout) findViewById(R.id.tablayout);

    mViewPager = (ViewPager) findViewById(R.id.viewpager);
    tv_title.setText("所有订单");
    for (int i = 0; i < tabTitles.length; i++) {
        mFragments.add(MyOrderFragment.createFragment(tabTitles[i],activity));
    }
    //为ViewPager设置FragmentPagerAdapter
    mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

        /**
         * 为TabLayout中每一个tab设置标题
         */
        @Override
        public CharSequence getPageTitle(int position) {
            return tabTitles[position];
        }
    });

    //TabLaout和ViewPager进行关联
    mTabLayout.setupWithViewPager(mViewPager);

其中MyOrderFragment就是我们装载的页面 ,这样就可以快速的实现tablayout和viewpager相互关联。

做个简单的记录~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/14813.html

相关文章

  • TabLayout简单运用和若干问题解决

    摘要:初步实现之前在知乎上看到有人对微信的设计改动将使用频率高的朋友圈消息提醒和公众号这三个功能独立出来放在首页。 1、介绍和准备 我们在使用手机App时不难会看到这样的页面上面是一组起导航作用的标签,点击标签就会切换到相应的页面;在不同的页面中滑动时,标签的样式(文字大小或者颜色)也会发生变化。这样你任何时候都能一眼看出自己停留在哪个页面。这个布局出镜率实在太高了,我甚至敢说每个学Andr...

    PiscesYE 评论0 收藏0
  • TabLayout简单运用和若干问题解决

    摘要:初步实现之前在知乎上看到有人对微信的设计改动将使用频率高的朋友圈消息提醒和公众号这三个功能独立出来放在首页。 1、介绍和准备 我们在使用手机App时不难会看到这样的页面上面是一组起导航作用的标签,点击标签就会切换到相应的页面;在不同的页面中滑动时,标签的样式(文字大小或者颜色)也会发生变化。这样你任何时候都能一眼看出自己停留在哪个页面。这个布局出镜率实在太高了,我甚至敢说每个学Andr...

    Raaabbit 评论0 收藏0
  • Android攻略

    摘要:但是,还有一需求点击断句我们需要判断用户的点击,定位到所点击的整句话,然后再将整句内容带来了哪些新东西今年的上谷歌发布了新版本的,但是我们并没有从中得到多少信息,只有一篇非常简陋的博客。 Android自定义View播放Gif动画 GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画、小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,...

    zhisheng 评论0 收藏0
  • android support design library包下各组件属性值设置

    摘要:它的子控件使用属性可以实现向上滑动隐藏控件的功能。滚动事件由可滚动控件设置属性通知。属性值介绍包裹的子控件使用表示该可以被滑出屏幕。表示任意向下的滚动都会导致该变为可见,启用快速返回模式。通过的子视图的属性控制。 2. TextInputLayout 2.0 环境配置 需要引用Support v7 和 Support Design 包 You need to use a...

    MasonEast 评论0 收藏0
  • Android实现底部状态栏切换

    摘要:开发过程中,特别是新开的项目,底部状态栏的切换使用的频率非常的高,主要的实现方式有这里我先介绍前面两种实现方式,后面两种后期再贴出实现方式。代码地址底部公众号回复底部状态栏切换即可获取。 Android开发过程中,特别是新开的项目,底部状态栏的切换使用的频率非常的高,主要的实现方式有: (1)、TabLayout + Fragment (2)、FragmentTabHo...

    SQC 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<