Kotlin 開發第 28 天 Parks ( ViewPager + TabLayout )


做一個導航欄和底部內容連動的功能。

  • 導航欄可以滑動
  • 導航欄和底部的動畫聯動(即不論滑動導航欄還是底部內容,另一個對象都會同步滑動)

Components

  • TabLayout
  • ViewPager
  • FragmentPagerAdapter

Parks

MainActivity 中包含上半部的 TabLayout 以及下半部的 ViewPager.

其中 ViewPager 是為了能夠讓下半部滑動,而其中的內容是對應的 Fragment.


TabLayout

默認的 TabLayout 的 tabMode 是 fixed(左圖)如果 tab 很多就會擠在一起,
可以改成 app:tabMode = “scrollable” (右圖)

 


ParksAdapter

建立 ParksAdapter 繼承於 FragmentPagerAdapter.


MainActivity

通過 findViewById 引入 viewPager 和 tabLayout.

這裡通過 tabLayout.setupWithViewPager 將 tabLayout 和 viewPager 聯動起來,
當 TabLayout 或者 ViewPager 有切換或者在滑動的過程中,都能夠同步做移動。


筆記

當我自定義多個繼承於 Fragment 的 Class 時,我發現沒辦法放入同一個 ArrayList 當中,例如:

這不像 Swift 如果都是繼承於 UIViewController,便可以都放入同一個 Array 中。

但其實翻了不少 Github 上的 Source Code 看上去 Java 也一樣能這樣做,不知道在語法上我是寫錯了哪裡。


參考

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *