2012-05-04 8 views
2

J'ai regardé les exemples et la seule différence semble être le nom, mais quand je change juste tous les noms dans mon application à TabPageIndicator de TitlePageIndicator, les onglets sont dans un alignement foiré et le soulignement de pied est parti.Quelles sont les différences d'implémentation entre TabPageIndicator et TitlePageIndicator?

Ai-je raté quelque chose? Y a-t-il quelque chose de plus à faire? Je

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); 
    ViewPager pager = 
     (ViewPager)findViewById(R.id.viewpager); 
    TabPageIndicator indicator = 
     (TabPageIndicator)findViewById(R.id.indicator); 
    pager.setAdapter(adapter); 
    indicator.setViewPager(pager); 

et

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@android:id/tabcontent" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5dp" > 
      <com.viewpagerindicator.TabPageIndicator 
    android:id="@+id/indicator" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    /> 
</FrameLayout> 
+1

[Vie wPagerIndicator] (http://viewpagerindicator.com/) il a même des images. – adneal

+0

Ce n'est pas du tout utile. Essayez de voir cette page et voyez si vous trouvez la réponse. – joepetrakovich

Répondre

5

Quelles sont les différences entre TabPageIndicator et TitlePageIndicator?

Essayez cette page et voyez si vous trouvez la réponse.

Je l'ai fait, c'est pourquoi j'ai posté pour commencer.

Titre Indicateur

Affiche le titre de la page sélectionnée dans le centre avec les titres des pages adjacentes (le cas échéant) dans un style plus subtil.

Indicateur Tab

similaire à l'indicateur de titre, mais affiche autant de titres que possible en défilement et onglets horizontaux animés.

exemple TitlePagerIndicator:

Adaptateur

class TestFragmentAdapter extends FragmentPagerAdapter { 
protected static final String[] CONTENT = new String[] { "This", "Is", "A", "Test", }; 

private int mCount = CONTENT.length; 

public TestFragmentAdapter(FragmentManager fm) { 
    super(fm); 
    } 

@Override 
public Fragment getItem(int position) { 
    return TestFragment.newInstance(CONTENT[position % CONTENT.length]); 
    } 

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

public void setCount(int count) { 
    if (count > 0 && count <= 10) { 
     mCount = count; 
     notifyDataSetChanged(); 
     } 
    } 
} 

Lorsque vous utilisez TitlePagerIndicator vous devez implémenter TitleProvider dans votre Adapter.

class TestTitleFragmentAdapter extends TestFragmentAdapter implements TitleProvider { 
public TestTitleFragmentAdapter(FragmentManager fm) { 
    super(fm); 
    } 

@Override 
public String getTitle(int position) { 
    return TestFragmentAdapter.CONTENT[position % CONTENT.length]; 
    } 
} 

Mettre le tout ensemble

TestFragmentAdapter mAdapter = new TestTitleFragmentAdapter(getSupportFragmentManager()); 
ViewPager mPager = (ViewPager)findViewById(R.id.pager); 
mPager.setAdapter(mAdapter); 
PageIndicator mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); 
mIndicator.setViewPager(mPager); 

exemple TabPagerIndicator:

public class SampleTabsDefault extends FragmentActivity { 
private static final String[] CONTENT = new String[] { "Recent", "Artists", "Albums", "Songs", "Playlists", "Genres" }; 

TestFragmentAdapter mAdapter; 
ViewPager mPager; 
PageIndicator mIndicator; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simple_tabs); 

    mAdapter = new GoogleMusicAdapter(getSupportFragmentManager()); 

    mPager = (ViewPager)findViewById(R.id.pager); 
    mPager.setAdapter(mAdapter); 

    mIndicator = (TabPageIndicator)findViewById(R.id.indicator); 
    mIndicator.setViewPager(mPager); 
    } 

class GoogleMusicAdapter extends TestFragmentAdapter implements TitleProvider { 
    public GoogleMusicAdapter(FragmentManager fm) { 
     super(fm); 
     } 

    @Override 
    public Fragment getItem(int position) { 
     return TestFragment.newInstance(SampleTabsDefault.CONTENT[position % SampleTabsDefault.CONTENT.length]); 
     } 

    @Override 
    public int getCount() { 
     return SampleTabsDefault.CONTENT.length; 
     } 

    @Override 
    public String getTitle(int position) { 
     return SampleTabsDefault.CONTENT[position % SampleTabsDefault.CONTENT.length].toUpperCase(); 
     } 
    } 
} 

Tous ces exemples et d'autres se trouvent sur Jake Wharton's Github repo for ViewPagerIndicator

+0

Si vous lisez ma question complète plutôt que le titre, vous verrez que je pose des questions sur la mise en œuvre, pas les caractéristiques visibles d'un onglet ... J'ai changé le titre pour le rendre plus clair. – joepetrakovich

+0

Édité ma réponse. – adneal

+0

Pouvez-vous mettre en évidence des différences significatives? Il semble qu'ils aient tous les deux besoin d'avoir un fournisseur de titres implémenté même s'il ne le dit que pour titlepageindicator. – joepetrakovich

Questions connexes