2015-01-20 2 views
0

은 API 21에서 사용되지 않으므로 PagerTabStrip으로 탭 레이아웃을 변경해야하지만 pagerTabStrip 탭에 사용자 정의 XML 레이아웃을 추가하는 방법을 찾을 수 없습니다. 알다시피, viewBadger 사용자 정의 XML을 부풀게해야합니다. 내 질문에 곧 답변되기를 바랍니다.안드로이드에서 pagerTabStrip에 뷰 바버를 추가 L

다음은 현재 사용중인 TabPagerAdapter입니다.

package com.example.gosh; 

import android.content.Context; 
import android.graphics.drawable.Drawable; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.text.SpannableStringBuilder; 
import android.text.Spanned; 
import android.text.style.ImageSpan; 

public class TabPagerAdapterMain extends FragmentStatePagerAdapter { 
    private String tabtitles[] = new String[] { "Home", "Task", "Shop","Wallet" }; 
Context mContext; 
Drawable homeIcon; 
Drawable taskIcon; 
Drawable shopIcon; 
Drawable walletIcon; 

public TabPagerAdapterMain(FragmentManager fm, Context context) { 
    super(fm); 
    mContext = context; 
} 


@Override 
public Fragment getItem(int i) { 
    switch (i) { 
     case 0: 
      return new Home(); 
     case 1: 
      return new Task(); 
     case 2: 
      return new Shop(); 
     case 3: 
      return new Wallet(); 
    } 
    return null; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 4; // No of Tabs 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    homeIcon = mContext.getResources().getDrawable(R.drawable.home_active); 
    taskIcon = mContext.getResources().getDrawable(R.drawable.task_active); 
    shopIcon = mContext.getResources().getDrawable(R.drawable.shop_active); 
    walletIcon = mContext.getResources().getDrawable(R.drawable.wallet_active); 

    if(position == 0){ 
     SpannableStringBuilder sb = new SpannableStringBuilder(" "+tabtitles[position]); // space added before text for convenience 

     homeIcon.setBounds(0, 0, homeIcon.getIntrinsicWidth(), homeIcon.getIntrinsicHeight()); 
     ImageSpan span = new ImageSpan(homeIcon, ImageSpan.ALIGN_BASELINE); 
     sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    }else if(position == 1){ 
     SpannableStringBuilder sb = new SpannableStringBuilder(" "+tabtitles[position]); // space added before text for convenience 

     taskIcon.setBounds(0, 0, taskIcon.getIntrinsicWidth(), taskIcon.getIntrinsicHeight()); 
     ImageSpan span = new ImageSpan(taskIcon, ImageSpan.ALIGN_BASELINE); 
     sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    }else if(position == 2){ 
     SpannableStringBuilder sb = new SpannableStringBuilder(" "+tabtitles[position]); // space added before text for convenience 

     shopIcon.setBounds(0, 0, shopIcon.getIntrinsicWidth(), shopIcon.getIntrinsicHeight()); 
     ImageSpan span = new ImageSpan(shopIcon, ImageSpan.ALIGN_BASELINE); 
     sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    }else if(position == 3){ 
     SpannableStringBuilder sb = new SpannableStringBuilder(" "+tabtitles[position]); // space added before text for convenience 

     walletIcon.setBounds(0, 0, walletIcon.getIntrinsicWidth(), walletIcon.getIntrinsicHeight()); 
     ImageSpan span = new ImageSpan(walletIcon, ImageSpan.ALIGN_BASELINE); 
     sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    }else{ 
     return null; 
    } 

} 
} 

답변

0

언제든지 탭에 조각을 추가 할 수 있습니다. 나는 파편이 반입 된 것을 보지 못합니다. 조각을 가져 왔는지 확인하십시오.

관련 문제