美文网首页
最快的方式 实现ViewPager的tab滑动标签效果

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

作者: 哇咔鲁咔 | 来源:发表于2018-10-12 09:16 被阅读0次

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

第一种方式

直接使用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);

相关文章

网友评论

      本文标题:最快的方式 实现ViewPager的tab滑动标签效果

      本文链接:https://www.haomeiwen.com/subject/oodwaftx.html