1

this tutorial의 도움으로 Android 앱용 PagerAdapter를 만들었습니다.ViewPager에 제목 추가

이제 Play 스토어와 같은 각 페이지에 제목을 추가하고 싶습니다. 이 라이브러리를 찾았습니다 : http://viewpagerindicator.com/ 그러나 내 애플 리케이션 또는 그것을 사용하는 방법에 그것을 구현하는 방법을 찾을 수 없습니다.

내게 사용법을 설명해 주시겠습니까? 이 필요한 경우 여기

, 내 PagerAdapter의 코드입니다 :

public class MyPagerAdapter extends PagerAdapter { 

    public int getCount() { 
     return 5; 
    } 

    public Object instantiateItem(View collection, int position) { 

     LayoutInflater inflater = (LayoutInflater) collection.getContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     int resId = 0; 

     switch(position) { 
      case 0: 
       resId = R.layout.farleft; 
       break; 
      case 1: 
       resId = R.layout.left; 
       break; 
      case 2: 
       resId = R.layout.middle; 
       break; 
      case 3: 
       resId = R.layout.right; 
       break; 
      case 4: 
       resId = R.layout.farright; 
       break; 
     } 

     View view = inflater.inflate(resId, null); 

     ((ViewPager) collection).addView(view, 0); 

     return view; 
    } 

    @Override 
    public void destroyItem(View arg0, int arg1, Object arg2) { 
     ((ViewPager) arg0).removeView((View) arg2); 
    } 

    @Override 
    public boolean isViewFromObject(View arg0, Object arg1) { 
     return arg0 == ((View) arg1); 
    } 

    @Override 
    public Parcelable saveState() { 
     return null; 
    } 
} 
+0

'getPageTitle()'메서드를 보셨습니까? (http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#getPageTitle%28int%29) – Luksprog

+0

좋아,이 방법으로 페이지 제목을 찾을 수 있습니다. 그러나 ViewPager 상단에 "제목 표시 줄"을 추가하고 싶습니다. 카테고리를 전환 할 때 Google Play 스토어에있는 것과 유사합니다. 내가 뭐라는지 알 겠어? – snix

+0

Commonsware의 대답을 확인하십시오. 이미 레이아웃에'PagerTitleStrip'이 있다고 생각했습니다. – Luksprog

답변

9

가 지금은 (Play 스토어처럼) 각 페이지에 제목을 추가 할

PagerTabStripPagerTitleStrip은 (는) ViewPager의 Android 지원 패키지에 있습니다. ViewPager의 자녀로 그 중 하나를 추가하고 상단 또는 하단에 스트립을 표시할지 여부를 나타내는 android:layout_gravity을 표시하십시오. 그런 다음 Luksprog가 표시된대로 PagerAdaptergetPageTitle()을 추가하십시오.

Here is a sample projectPagerTabStrip의 사용을 보여주는 것입니다.

그러나 내 앱에서이를 구현하는 방법이나 사용 방법을 알 수 없습니다.

기본 지침은 링크 된 페이지에 있습니다. 레이아웃에 ViewPagerIndicator 위젯 중 하나를 원하는 위치에 추가하십시오 (예 : verticalLinearLayout을 사용하여 ViewPager 위에 레이어 위젯을 겹침). ViewPager에서 setAdapter()으로 전화 한 후 표시기 위젯에서 setViewPager()으로 전화하여 ViewPager을 제공하십시오. 다시 한번 PagerAdaptergetPageTitle()을 구현해야합니다.

+0

이제 PagerTitleStrip을 추가했습니다. 그게 내가 필요한 :)하지만 정확히 어떻게 getPageTitle - 메서드를 사용합니까? PagerAdapter에 추가했지만 많은 오류가 발생합니다. 그리고 만약 그들이 정의되지 않았다면 이것이 내 제목을 어떻게 발견 할 수 있을지 궁금합니다. – snix

+0

@cShock_ : 내가 링크 한 샘플 프로젝트에서'getPageTitle()'을 볼 수 있습니다. 페이지의 '위치'가 주어지면'String'을 반환합니다. 필자는 문자열 리소스와 위치 번호 자체를 구축하려고합니다. – CommonsWare

+0

getPageTitle-method를 수정하여 "test"를 반환하면 작동합니다. 이제 모든 제목은 "테스트"입니다.하지만 당신의 구현을 사용할 때 StackOverflowError를 줄 것이다. 내 PagerAdapter에서이 메서드를 재정의 할 때 제대로하고 있습니까? – snix

2

오늘 저는 PagerSlidingTabStrip 라이브러리가 안드로이드의 기본 설정보다 훨씬 더 나은 선택임을 알았습니다.

https://github.com/astuetz/PagerSlidingTabStrip

PS : 대답으로 게시 죄송합니다, 나는 의견을 충분히 평판이 없습니다.

+0

일단 질문이 있으시면이 질문에 대한 설명으로 이동하십시오. :) –