原來 tab 是手動做出來的。
再看 http://givemepass.blogspot.tw/2015/10/tablayout.html
這個也是 step by step: http://givemepass-blog.logdown.com/posts/288943-how-to-use-tablayout
原來是 android support library 新增加 actionbar 元件。
Support Library 要額外download, 會放在 extra/ 下。
裡面有這些 features
不僅提供舊OS能有新 interface 的 api support, 同時也有新增加的 feature
根據你的 OS 版本不同,要用的內容也不一樣
要用的話,除了要download, 還要修改 build.gradle, 加入
compile 'com.android.support:design:23.2.1-- 開啟 SDK Manager 來看裝的是那一版。
根據上面兩個 ref link, 合併在一起: https://github.com/checko/TabLayout
原來TabLayout 是主要元件。
所以 main layout 上要擺一個 TabLayout (android.support.design.widget.TabLayout)
然後還需要一個區域:ViewPager (android.support.v4.view.ViewPager)
這個 ViewPager 就是用來讓 TabLayout 根據click 和滑動變更內容的區域。
TabLayout 基本上只負責 顯示 title, 反應 click/swipe 來變更 ViewPager 內容。
不管ViewPager 裡面的動作。
負責反應click, swipe 的是 TabLayout.setOnTabSelectedListener()
負責 swipe , 因為動作在ViewPager, 所以是 ViewPager.addOnPageChangeListener()
然後把 ViewPager 和每一個 page 內容 (layout) 連在一起的是 PagerAdapter 這個 class
要繼承這個 class, 實做 instantiateItem(..,int position ) 時,根據 position 把page 內容(layout)生出來。
在 ViewPager 李的每個 view 裡面的 widget (view), 只有用那個 view 才access 得到。
舉例來說,page 2 李有一個 TextView,
要用
view = getLayoutInflater().inflate(R.layout.page_2, container, false); mTextView = (TextView) view.findValueById(R.id.tvppp);在 MainActivity 的 OnCreate 裡,access 不到。
沒有留言:
張貼留言