Android UI控制元件系列:TabWidget(切換卡)
Tab選項卡類似與電話本的介面,通過多個標籤切換不同的內容,要實現這個效果,首先要知道TabHost,它是一個用來存放多個Tab標籤的容器,每一個Tab都可以對應自己的佈局,比如,電話本中的Tab佈局就是一個線性佈局
要使用TabHost,首先要通過getTabHost方法獲取TabHost的物件,然後通過addTab方法來向TabHost中新增Tab,當然每個Tab在切換時都會產生一個事件,要捕捉這個事件,需要設定TabActivity的事件監聽setOnTabChangedListener
下面是個小例子:
TabTest.java
package org.hualang.tab; import android.app.Activity; import android.app.TabActivity; import android.graphics.Color; import android.os.Bundle; import android.widget.TabHost; import android.widget.Toast; import android.widget.TabHost.OnTabChangeListener; public class TabTest extends TabActivity { /** Called when the activity is first created. */ TabHost tabhost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //取得TabHost物件 tabhost = getTabHost(); //為TabHost新增標籤 //新建一個newTabSpec(newTabSpec) //設定其標籤和圖示(setIndicator) //設定內容(setContent) tabhost.addTab(tabhost.newTabSpec("tab1") .setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1)) .setContent(R.id.text1)); tabhost.addTab(tabhost.newTabSpec("tab2") .setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2)) .setContent(R.id.text2)); tabhost.addTab(tabhost.newTabSpec("tab3") .setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3)) .setContent(R.id.text3)); //設定TabHost的背景顏色 //tabhost.setBackgroundColor(Color.argb(150,22,70,150)); //設定TabHost的背景圖片資源 tabhost.setBackgroundResource(R.drawable.bg0); //設定當前顯示哪個標籤 tabhost.setCurrentTab(0); //標籤切換事件處理,setOnTabChangedListener tabhost.setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { Toast toast=Toast.makeText(getApplicationContext(), "現在是"+tabId+"標籤", Toast.LENGTH_SHORT); toast.show(); } }); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="選項卡1" /> <TextView android:id="@+id/text2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="選項卡2" /> <TextView android:id="@+id/text3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="選項卡3" /> </FrameLayout> </LinearLayout> </TabHost>
執行效果如下:
相關文章
- Android效能UI卡頓AndroidUI
- 快速切換至Kotlin for Android模式KotlinAndroid模式
- idea 2024.2切換到舊版的UIIdeaUI
- Flutter UI使用Provide實現主題切換FlutterUIIDE
- 如何優雅阻止view UI 的 Switch 切換?ViewUI
- Selenium系列教程-09 如何切換iframe
- 利用ViewPager和Fragment實現頁卡切換ViewpagerFragment
- 【Android 進階】仿抖音系列之翻頁上下滑切換視訊(一)Android
- 華為Mate 20 Pro雙卡怎麼切換?華為Mate20 Pro雙卡資料切換方法教程
- win10如何切換獨立顯示卡 win10切換獨立顯示卡怎麼設定Win10
- CSS3 tab選項卡動態切換CSSS3
- Win10系統切換視窗卡頓怎麼辦_win10切換視窗卡頓的解決教程Win10
- Android——Activity切換炫酷動畫實現Android動畫
- Android 實現APP可切換多語言AndroidAPP
- android基礎學習-android篇day12-UI基礎控制元件(上)AndroidUI控制元件
- android基礎學習-android篇day13-UI基礎控制元件(下)AndroidUI控制元件
- Win10系統切換使用者會卡怎麼辦_win10切換賬戶會卡頓解決教程Win10
- Android效能優化——列表類控制元件卡頓優化Android優化控制元件
- JavaScript左右滑動切換的選項卡詳解JavaScript
- [譯] 從 Android Studio 切換至 D8 dexerAndroid
- 程式切換(上下文切換)
- win10系統雙顯示卡怎麼切換?Win10系統雙顯示卡切換AMD和英特爾的方法Win10
- 高階UI特效之仿3D翻轉切換效果UI特效3D
- [python][selenium] Web UI自動化切換iframe框架以及瀏覽器操作切換視窗和處理彈窗PythonWebUI框架瀏覽器
- Android 高仿騰訊新聞視訊切換效果Android
- 棧切換
- Win10系統下雙顯示卡切換到獨立顯示卡的方法Win10
- Rxjava 2.x 原始碼系列 - 執行緒切換 (下)RxJava原始碼執行緒
- Rxjava 2.x 原始碼系列 - 執行緒切換 (上)RxJava原始碼執行緒
- win10系統amd顯示卡如何切換到獨顯Win10
- Android列表控制元件Android控制元件
- Android 分享控制元件Android控制元件
- android ios UIAndroidiOSUI
- 六、Android效能優化之UI卡頓分析之渲染效能優化Android優化UI
- 切換UNDO(zt)
- ubuntu切換源Ubuntu
- Git分支切換Git
- 切換java版本Java
- 切換 PHP 版本PHP