Android 5.x Material design 之 TabLayout(02)

Randy _ 孤獨(dú)患者

書接上章: (1)改下指示標(biāo)的一些屬性:例如顏色酣栈,寬高论笔,大小寫等 (2)自定義導(dǎo)航欄
: 沒有看過第一篇赚瘦,建議先看第一篇:
Android 5.x Material design 之 TabLayout (01)
-----------------------------華麗麗的分割線----------------------

一爹谭,改變指示標(biāo)的特性

01,

  • 其實(shí)很簡單:
  • 只需在 style文件中:
<style name="MyTabLayoutStyle" parent="Widget.Design.TabLayout">    
    <!--tab的最大的寬度-->
    <item name="tabMaxWidth">@dimen/design_tab_max_width</item>        
    <!--tab指示標(biāo)的顏色-->
    <item name="tabIndicatorColor">#69f</item>
    <!--tab 指示標(biāo)的高度-->
    <item name="tabIndicatorHeight">2dp</item>
    <!--tab字體的樣式-->
    <item name="tabTextAppearance">@style/MyTabTextStyle</item>      
    <!--tab 選中時的顏色-->
    <item name="tabSelectedTextColor">#69f</item>
</style>
  • 上述MyTabTextStyle,也是一個自己定義的樣式隙畜,如下
<style name="MyTabTextStyle" parent="TextAppearance.Design.Tab">    
      <!--Tab字體的大小-->
      <item name="android:textSize">@dimen/design_tab_text_size</item>
      <!--Tab字體的默認(rèn)的顏色-->
      <item name="android:textColor">#1d000000</item>
      <!--Tab字體是否為大寫-->
      <item name="textAllCaps">true</item>
</style>

02抖部,在你的布局文件中,引用自定義style就ok了

<android.support.design.widget.TabLayout
      android:id="@+id/tl_sliding"
      android:layout_width="match_parent"      
      style="@style/MyTabLayoutStyle"        
      android:layout_height="wrap_content" />

03,最后议惰,看看效果咯

-- 發(fā)現(xiàn)字體顏色慎颗,指示標(biāo)等,都已經(jīng)改變咯换淆。哗总。。

1D2C109F-1663-42CA-86A1-604D5AD42D4A.png

二倍试,自定義導(dǎo)航欄

  • 有時候讯屈,可能,這些并不能滿足我們的需要县习,所以涮母,我們要自定義一些導(dǎo)航欄,來滿足我們的需求躁愿。我們可以用如下方法來實(shí)現(xiàn)我們想要的效果哦~~

01 首先寫我們的自定義tab的布局 layout/tab_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_width="match_parent"      
    android:layout_height="match_parent"    
    android:gravity="center" 
    android:orientation="vertical">
      <ImageView
          android:id="@+id/iv_tab"
          android:layout_width="30dp"
          android:scaleType="fitXY"
          android:layout_height="30dp" />
      <TextView
           android:id="@+id/tv_tab"        
           android:layout_width="wrap_content"        
           android:layout_height="wrap_content"        
           android:gravity="center" />
</LinearLayout>
  • 布局很賤單叛本,不多說了

02,來到適配器PagerAdapter中

   public class PagerAdaper extends FragmentPagerAdapter {  
      /**     * 標(biāo)題欄     */
      private static final String[] mTitles = {"tab0", "tab1", "tab2", "tab3", "tab4", "tab5", "tab6"};
      private static final int[] mImgIds = {android.R.drawable.ic_delete, android.R.drawable.ic_menu_add,            android.R.drawable.ic_menu_agenda, android.R.drawable.ic_dialog_alert,            android.R.drawable.ic_lock_lock, android.R.drawable.ic_search_category_default,            android.R.drawable.ic_input_get};
      private Context mContext;
      public PagerAdaper(FragmentManager fm, Context context) {        
              super(fm);
              this.mContext = context;  
      }
      @Override
      public Fragment getItem(int position) {
            return CommonFragment.newInstance(position); 
       }
      @Override
      public int getCount() {
            return mTitles.length;    }
      //自定義返回 標(biāo)題欄的方法
      public View getTabView(int position) {
          View view = LayoutInflater.from(mContext).inflate(R.layout.tab_layout, null);        
          ImageView iv_tab = (ImageView) view.findViewById(R.id.iv_tab);        
          TextView tv_tab = (TextView) view.findViewById(R.id.tv_tab);        
          iv_tab.setImageResource(mImgIds[position]);        
          tv_tab.setText(mTitles[position]);
          return view;
      }  
}
  • 這個類中,加了一個我們自定義的 方法getTabView(int pos)彤钟, 為了返回對應(yīng)標(biāo)題位置的 自定義的標(biāo)題

03来候,最后回到我們的MainActivity中,來初始化我們的標(biāo)題

  protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.activity_main); 
          //初始化控件
         ViewPager vp_content = (ViewPager) findViewById(R.id.vp_content);    
          TabLayout tl_sliding = (TabLayout) findViewById(R.id.tl_sliding);    
          PagerAdaper adapter = new PagerAdaper(getSupportFragmentManager(), this);    
          vp_content.setAdapter(adapter); 
           /**讓標(biāo)題欄和viewpager聯(lián)動起來*/    
          tl_sliding.setTabMode(TabLayout.MODE_SCROLLABLE);    
          tl_sliding.setupWithViewPager(vp_content);
          //設(shè)置自定義標(biāo)題 
         for (int i = 0; i < tl_sliding.getTabCount(); i++) {
                //獲得到對應(yīng)位置的Tab 
               TabLayout.Tab tab = tl_sliding.getTabAt(i);
              //設(shè)置自定義的標(biāo)題  
              tab.setCustomView(adapter.getTabView(i));
          }
    }
  • 上述代碼逸雹,01)主要通過 getTabCount得到TabLayout中的tab的數(shù)目营搅,
    02)然后通過方法getTabAt(int pos)獲得每個位置上的tab,
    1. 調(diào)用 Tab類中的setCustomView();方法來設(shè)置每個標(biāo)題
DE02FA91-1E91-4A0D-AAAE-AE41720A346E.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梆砸,隨后出現(xiàn)的幾起案子转质,更是在濱河造成了極大的恐慌,老刑警劉巖帖世,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件休蟹,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赂弓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門绑榴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盈魁,你說我怎么就攤上這事彭沼。” “怎么了备埃?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長褐奴。 經(jīng)常有香客問我按脚,道長,這世上最難降的妖魔是什么敦冬? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任辅搬,我火速辦了婚禮,結(jié)果婚禮上脖旱,老公的妹妹穿的比我還像新娘堪遂。我一直安慰自己,他們只是感情好萌庆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布溶褪。 她就那樣靜靜地躺著,像睡著了一般践险。 火紅的嫁衣襯著肌膚如雪猿妈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天巍虫,我揣著相機(jī)與錄音彭则,去河邊找鬼。 笑死占遥,一個胖子當(dāng)著我的面吹牛俯抖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓦胎,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芬萍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凛捏?” 一聲冷哼從身側(cè)響起担忧,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坯癣,沒想到半個月后瓶盛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年惩猫,在試婚紗的時候發(fā)現(xiàn)自己被綠了芝硬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡轧房,死狀恐怖拌阴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奶镶,我是刑警寧澤迟赃,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站厂镇,受9級特大地震影響纤壁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捺信,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一酌媒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迄靠,春花似錦秒咨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疫诽,卻和暖如春舅世,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奇徒。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工雏亚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摩钙。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓罢低,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胖笛。 傳聞我的和親對象是個殘疾皇子网持,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容