2011-12-21 12 views
22

Postanowiłem użyć aplikacji ViewPager w mojej aplikacji i wszystko działa poprawnie. Wiem, że chcę użyć PagerTitleStrip w moim ViewPager, ale nie udało mi się znaleźć żadnych informacji, jak to zrobić ... Jedyna i jedyna strona (sic!), Którą znalazłem w tej klasie to http://developer.android.com/reference/android/support/v4/view/PagerTitleStrip.html wydaje się więc, że wystarczy dodać PagerTitleStrip w moim ViewPager układu, ale nie widzę niczego nowego o mojej działalności ...Czy ktoś wie, jak korzystać z PagerTitleStrip w Androidzie

<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <android.support.v4.view.PagerTitleStrip 
     android:id="@+id/pagerTitleStrip" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" /> 
</android.support.v4.view.ViewPager> 

Czy ktoś wie, jak go używać?

Zmieniano: Niestety to działa przy realizacji sposobu w ViewPagerAdaptergetPageTitle ... ale nie chcę wyświetlany dowolny tekst, tylko mały kursor, aby wyświetlić położenie bieżącego widoku w stosunku do poprzedniego lub następnego ...

Odpowiedz

44

Nie jestem pewien, co powoduje błąd w twoim przypadku, ale to jest, jak go używać, w układzie należy wstawić następujący kod w układzie:

<android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" > 

     <android.support.v4.view.PagerTitleStrip 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" /> 
</android.support.v4.view.ViewPager> 

Następnie należy dodać następujący kod w swoim PageAdapter:

 @Override 
     public CharSequence getPageTitle (int position) { 
      return "Your static title"; 
     } 

To jest piękne.

+0

To działa całkiem dobrze ... to nie jest najlepszy pod względem dostosowywania ale robi swoje. To powinna być zaakceptowana odpowiedź! –

2

Miałem również ten problem, gdy PagerTitleStrip nie był widoczny. Powyższe odpowiedzi nie pomogły. Problem polegał na tym, że poszedłem za przykładem na http://developer.android.com/reference/android/support/v4/view/ViewPager.html.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mViewPager = new ViewPager(this); 
    mViewPager.setId(R.id.pager); 
    setContentView(mViewPager); 

Powyższy kod pokazuje widok strony, ale nie PagerTitleStrip.

Zmieniłem kod do

protected void onCreate(Bundle savedInstanceData) { 
    super.onCreate(savedInstanceData); 
    setTitle(R.string.my_title); 

    setContentView(R.layout.my_pager); 
    viewPager = (ViewPager)findViewById(R.id.pager); 

res/layout/my_pager.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.view.ViewPager 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v4.view.PagerTitleStrip 
     android:id="@+id/pager_title_strip" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:background="#33b5e5" 
     android:textColor="#fff" 
     android:paddingTop="4dp" 
     android:paddingBottom="4dp" /> 

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

byłem też w stanie być wstecznie kompatybilne z API 8 usuwając cały kod w ViewPager (javadoc page) przykład do manipulowania ActionBar i ActionBar.Tab.

-1

PagerTitleStrip jest nieinteraktywnym sygnałem bieżących, następnych i poprzednich stron ViewPagera. To naprawdę jest przeznaczony do stosowania jako widok podrzędny widget ViewPager

Etap 1. Utwórz układ activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    tools:context="com.example.androidviewpagerapp.MainActivity" > 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:autoLink="web" 
     android:text="http://android-er.blogspot.com/" 
     android:textStyle="bold" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/myviewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.v4.view.PagerTitleStrip 
      android:id="@+id/titlestrip" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </android.support.v4.view.ViewPager> 
    </LinearLayout> 

Krok 2. Tworzenie aktywny zawiera ViewPager to (MainActvity.java)

public class MainActivity extends Activity { 
ViewPager viewPager; 
MyPagerAdapter myPagerAdapter; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    viewPager = (ViewPager)findViewById(R.id.myviewpager); 
    myPagerAdapter = new MyPagerAdapter(); 
    viewPager.setAdapter(myPagerAdapter); 
    PagerTitleStrip pagerTitleStrip = (PagerTitleStrip)findViewById(R.id.titlestrip); 
} 
} 

Demo: http://photo-wonder.blogspot.com/2016/09/pagertitlestrip-on-viewpager-android.html

Powiązane problemy