看了网上的的一些资料和android源码之后,总结出自定义Tab的大概实现,记录以备后查。
android中的tab控件显示通过TabHost和TabWidget来实现,在TabHost.TabSpec提供了tab自定义外观的实现方法:
TabSpec android.widget.TabHost.TabSpec.setIndicator(View view);
我们提供自定义的View即可,android源码中默认的view有两种:一种只有TextView,另一种包含ImageView和TextView,看看第二种的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="64dip"
android:layout_weight="1"
android:layout_marginLeft="-3dip"
android:layout_marginRight="-3dip"
android:orientation="vertical"
android:background="@android:drawable/tab_indicator">
<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height&