2011-12-21 3 views
22

Я решил использовать ViewPager в своем приложении, и все работает нормально. Я знаю, что хочу использовать PagerTitleStrip в своем ViewPager, но мне не удалось найти информацию о том, как это сделать ... Единственная страница (sic !!), которую я нашел в этом классе, это http://developer.android.com/reference/android/support/v4/view/PagerTitleStrip.html Таким образом, кажется мне просто нужно добавить PagerTitleStrip в моей ViewPager макет, но я не вижу ничего нового в моей деятельности ...Кто-нибудь знает, как использовать PagerTitleStrip в Android

<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> 

кто-нибудь знает, как использовать его?

Отредактировано: К сожалению он работает при реализации метода getPageTitle в ViewPagerAdapter ... но я не хочу, любой текст, который отображается, только маленький курсор, чтобы показать позицию текущего вида по сравнению с предыдущим и следующим из них ...

ответ

44

Я не уверен, что вызывает ошибку в вашем случае, но это, как я использую его в макете вы должны вставить следующий код в макете:

<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> 

Затем необходимо добавить следующий код в PageAdapter:

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

Это очень.

+0

Она работает довольно хорошо ... это не самый лучший с точки зрения настройки, но он делает свою работу. Это должен быть принятый ответ! –

2

У меня тоже была эта проблема, когда PagerTitleStrip не был виден. Ответы выше не помогли. Проблема заключалась в том, что я следовал примеру 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); 

В приведенном выше коде показан пейджер представления, но не PagerTitleStrip.

Я изменил код

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

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

Рез/макет/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> 

Я также был в состоянии быть обратная совместимость с API 8, удаляя весь код в ViewPager (страница javadoc), чтобы манипулировать ActionBar и ActionBar.Tab.

-1

PagerTitleStrip - это неинтерактивный сигнал текущей, следующей и прежних страниц ViewPager. Он действительно предназначен для использования в качестве представления ребенка виджета ViewPager

Шаг 1. Создание макета 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> 

Шаг 2. Создание активности содержит ViewPager это (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); 
} 
} 

Демо: http://photo-wonder.blogspot.com/2016/09/pagertitlestrip-on-viewpager-android.html

Смежные вопросы