最快的方式 實現(xiàn)ViewPager的tab滑動標(biāo)簽效果

之前準(zhǔn)備制作一個滑動標(biāo)簽效果,使用了以下三種方法。

第一種方式

直接使用TextView 當(dāng)標(biāo)簽用,給每個TextView添加監(jiān)聽事件生硬粗暴。此方法雖然能實現(xiàn)切換效果 但是那種炫酷切換特效也要手擼,比如標(biāo)簽下面的可以移動的下劃線。不推薦!

第二種方式

使用FragmentTabHost + ViewPage (同理FragmentViewpager)也嘗試用了一下。這個TabHost需要自己生成并返回textview。測試了一下完美運行,但是viewpager的滑動效果不在了,只能通過點擊標(biāo)簽完成切換。雖然有其它解決方式 不推薦!

    /**
     * 初始化并返回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 (需要導(dǎo)包依賴 ) 這種方式完美解決前面的問題,并且代碼量也是最少的。非常推薦!

1.gif

設(shè)置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);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《冬牧場》曠野幽靜牧民們簡單純粹的生活與浮躁都市里的繁華喧囂形成鮮明的對比。牧民們的孩子8、9歲的時候像4、5歲,...
    愛莉莉閱讀 2,003評論 0 1
  • 今天在得到里面聽到了約拿情結(jié)這個概念,提出這個概念的人是著名的心理學(xué)家馬斯洛。馬斯洛總結(jié)了人類不同層次的需求,從最...
    鈐魚擺擺閱讀 542評論 1 1
  • 說明:用二個句號代表復(fù)句,類型分別為并列、承接、遞進、因果、選擇、轉(zhuǎn)折、假設(shè)、條件。 只對中心圖做了創(chuàng)意,其它配圖...
    沈陽一莊曉娟閱讀 1,012評論 0 1
  • 一。 “發(fā)個紅包用一下。六元?!?下午刷朋友圈的時候看到了一個小姐姐po出的聊天截圖。 截圖很簡單就只有一句話:“...
    等小七閱讀 1,792評論 23 15

友情鏈接更多精彩內(nèi)容