2017-12-12 4 views
0

내 Viewpager에 아이콘과 제목을 표시하고 싶습니다. activity_main.xmlAndroid Viewpager에서 TabLayout으로 아이콘을 설정하는 방법

<android.support.v4.view.ViewPager android:layout_height="match_parent" 
android:layout_width="match_parent" 
android:id="@+id/pageViewer" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<android.support.design.widget.TabLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" /> 

</android.support.v4.view.ViewPager> 

CustomPagerAdapter.java 내가 어댑터를 호출 MainActivity.java의

public class TabsAdapter extends FragmentPagerAdapter { 

    public TabsAdapter(FragmentManager fg){ 
     super(fg); 
    } 
    @Override 
    public Fragment getItem(int position) { 
     switch (position){ 
      case 1: 
       return new TabBlueFragments(); 
      case 0: 
       return new TabGreenFragment(); 
      case 2: 
       return new TabRedFragment(); 
     } 
     return null; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position){ 
      case 1: 
       return "Blue"; 
      case 0: 
       return "Green"; 
      case 2: 
       return "Red"; 
     } 
     return ""; 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 
} 

섹션.

viewPager=(ViewPager)findViewById(R.id.pageViewer); 

TabsAdapter adapter = new TabsAdapter(getSupportFragmentManager()); 
viewPager.setAdapter(adapter); 

나는 아이콘을 반환하는 방법을 놓쳤다. 하지만 제목이 제대로 표시됩니다.

+0

확인이 [대답] (https://stackoverflow.com/a/12837635/5308778) 희망이 https://www.androidhive.info/ 문제 – Lucky

+0

를 해결 2015/09/android-material-design-working-tabs/ –

+1

[android : Android Support Lib 버전 4의 PagerTabStrip에 아이콘/드로어 블을 추가하는 방법] (https://stackoverflow.com/) 질문/11839031/android-how-to-add-icons-drawable-to-the-pagertabstrip-from-the-android-suppor) – ADM

답변

1

SpannableStringBuilder를 사용하여 페이지 제목에 텍스트 UI가있는 아이콘을 만들 수 있습니다. 코드 아래 참조 :이 당신을 도울 것입니다

@Override 
    public CharSequence getPageTitle(int position) { 
     switch (position){ 
      case 1: 
       SpannableStringBuilder blue = new SpannableStringBuilder("Blue 
       "); 
       myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), 
       myDrawable.getIntrinsicHeight()); 
       ImageSpan span = new ImageSpan(myDrawable, 
       ImageSpan.ALIGN_BASELINE); 
       blue.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

       return blue; 
      case 0: 
       SpannableStringBuilder green = new SpannableStringBuilder("Green 
       "); 
       myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), 
       myDrawable.getIntrinsicHeight()); 
       ImageSpan span = new ImageSpan(myDrawable, 
       ImageSpan.ALIGN_BASELINE); 
       green.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

       return green; 
      case 2: 
       SpannableStringBuilder red = new SpannableStringBuilder("Red 
       "); 
       myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), 
       myDrawable.getIntrinsicHeight()); 
       ImageSpan span = new ImageSpan(myDrawable, 
       ImageSpan.ALIGN_BASELINE); 
       red.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

       return red; 
     } 
     return ""; 
    } 
관련 문제