Android學習筆記之Tab

今兒任務本是做需求分析,不過一早整完了。留下晚上大片空白時間,幹嘛?當然看Android~

       原來學的時候,覺得Tab這塊學的不是很好,不是很理解,有死記硬背的嫌疑。所以,今晚上就花了些時間看看GoogleDeveloper Guide。

話說,工慾善其事必先利其器;第一步。。。,嘿嘿,先美美的眯一會兒,今兒確實累了。人累了就是睡的香,《國際歌》吼得嘶聲裂肺額還是一睜眼就二十分中過去了。

好,不扯了,複習Tab。


俗話說(又是俗話說),凡事預則立不預則廢。學習也是這樣。學這個東東總是要有個思路的。額覺得可以這樣看:參照Google 開Tutorials,首先弄清楚展現出Tab效果需要什麼類,什麼配置,什麼資源(關於Tab是什麼可以google一下),然後看看這些類之間都有什麼關係,是包含是並列?然後再看這幾個類或配置文件是怎麼樣相互聯繫的,哪個類是程序入口哪個類調用了資源,哪個類負責顯示了什麼效果。

按照這個思路,來看下Android SDK Docs中hello-tabwidget項目。首先粗略看了遍,額,需要一個ArtistActivity類,AlbumsActivity,SongsActivity,TabSpec,TabHost,幾個圖標,標識這幾個圖標的資源文件ic_tab_artists.xml文件,main.xml,HelloTabWidget類,還需要修改下Android Manifest.xml文件。

再看各個文件和類之間都有嘛關係。看HelloTabWidget.java,這是程序入口,裏面寫了一tuo代碼。裏面有註釋,說:

// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);

我就不翻譯了,這樣,就可以進入Tab的Activity了,也就是把當前類和ArtistActivity.java 類連接起來了。

// Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("artists").setIndicator("Artists",
                      res.getDrawable(R.drawable.ic_tab_artists))
                  .setContent(intent);


這一坨代碼通過TabHost實例了一個TabpSpec,並設置了TabSpec的名字,圖片等,還將包含當前類(HelloTabWidget)和ArtistActivity關係的intent設置好給了spec,這樣TabSpec就知道顯示我的時候,我該顯示的是名字圖片和ArtistActivity。


 tabHost.addTab(spec);
然後把TabSpec加入了TabHost。

那TabWidget是什麼用呢?該Tutorial也說了,“The TabHost requires that a TabWidget and a FrameLayout both live somewhere within it.  The FrameLayout is where the content for each tab goes, which is empty now because the TabHost will automatically embed eachActivity within it.

也就是TabHost 需要一個TabWidget和一個FrameLayout來顯示TabHost中的東東,並且會自動將自己包含過來的ArtistActivity什麼的放在FrameLayout中顯示。



好吧,最後還要修改下Android Manifest,把ArtistActivity幾個Activity加入進去就得了。

然後,右鍵,你知道該怎麼做的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章