最快的方式 实现ViewPager的tab滑动标签效果

之前准备制作一个滑动标签效果,使用了以下三种方法。

第一种方式

直接使用TextView 当标签用,给每个TextView添加监听事件生硬粗暴。此方法虽然能实现切换效果 但是那种炫酷切换特效也要手撸,比如标签下面的可以移动的下划线。不推荐!

第二种方式

使用FragmentTabHost + ViewPage (同理FragmentViewpager)也尝试用了一下。这个TabHost需要自己生成并返回textview。测试了一下完美运行,但是viewpager的滑动效果不在了,只能通过点击标签完成切换。虽然有其它解决方式 不推荐!

    /**
     * 初始化并返回Tab子布局
     */
    private View getTabItemView(int position) {
        TextView textView = new TextView(PagerActivity.this);
        textView.setWidth(30);
        textView.setText(titles[position]);
        return textView;
    }
第三种方式

@Gradle: com.android.support:design-27.1.1
使用TabLayout (需要导包依赖 ) 这种方式完美解决前面的问题,并且代码量也是最少的。非常推荐!

1.gif

设置xml
    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="30dp" />

    <android.support.v4.view.ViewPager
        android:id="@+id/myViewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/tab_layout"
        android:layout_alignParentStart="true"
        android:layout_marginTop="0dp" />

activty代码
        viewPager = findViewById(R.id.myViewPager);
        TabLayout tabLayout = findViewById(R.id.tab_layout);
        tabLayout.setupWithViewPager(viewPager);
        List<Fragment> data = new ArrayList<>();
        data.add(new FirstFragment());
        data.add(new SecendFragment());
        MyViewPageAdapter adapter = new MyViewPageAdapter(data, getSupportFragmentManager(),titles);
        viewPager.setAdapter(adapter);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《冬牧场》旷野幽静牧民们简单纯粹的生活与浮躁都市里的繁华喧嚣形成鲜明的对比。牧民们的孩子8、9岁的时候像4、5岁,...
    爱莉莉阅读 1,930评论 0 1
  • 今天在得到里面听到了约拿情结这个概念,提出这个概念的人是著名的心理学家马斯洛。马斯洛总结了人类不同层次的需求,从最...
    钤鱼摆摆阅读 483评论 1 1
  • 说明:用二个句号代表复句,类型分别为并列、承接、递进、因果、选择、转折、假设、条件。 只对中心图做了创意,其它配图...
    沈阳一庄晓娟阅读 946评论 0 1
  • 一。 “发个红包用一下。六元。” 下午刷朋友圈的时候看到了一个小姐姐po出的聊天截图。 截图很简单就只有一句话:“...
    等小七阅读 1,735评论 23 15