2011-12-21 38 views
22

Tôi đã quyết định sử dụng ViewPager trong đơn đăng ký của mình và mọi thứ đều hoạt động tốt. Tôi biết rằng tôi muốn sử dụng PagerTitleStrip trong số ViewPager của mình, nhưng tôi đã không tìm thấy bất kỳ thông tin nào về cách thực hiện ... Trang duy nhất (sic !!) Tôi tìm thấy trên lớp học này là http://developer.android.com/reference/android/support/v4/view/PagerTitleStrip.html Vì vậy, có vẻ như tôi chỉ cần thêm PagerTitleStrip trong ViewPager bố trí của tôi, nhưng tôi không thấy bất cứ điều gì mới về hoạt động của tôi ...Có ai đó biết cách sử dụng PagerTitleStrip trong 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> 

có ai biết làm thế nào để sử dụng nó?

được sửa đổi: Xin lỗi nó hoạt động khi thực hiện phương pháp getPageTitle trong ViewPagerAdapter ... nhưng tôi không muốn có bất kỳ văn bản hiển thị, chỉ cần một con trỏ nhỏ để hiển thị vị trí của các Xem hiện tại so với những người trước đây và tiếp theo ...

Trả lời

44

Tôi không chắc chắn những gì gây ra lỗi trong trường hợp của bạn, nhưng đây là cách tôi sử dụng nó, trong cách bố trí của bạn, bạn nên chèn mã sau đây trong cách bố trí của bạn:

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

sau đó, bạn nên thêm đoạn mã sau vào PageAdapter của bạn:

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

Điều đó thật tuyệt.

+0

Nó hoạt động khá tốt ... nó không phải là tốt nhất về tùy biến nhưng nó công việc của mình. Đây sẽ là câu trả lời được chấp nhận! –

2

Tôi cũng gặp sự cố này khi PagerTitleStrip không hiển thị. Các câu trả lời ở trên không giúp được gì. Vấn đề là tôi theo ví dụ trên 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); 

Đoạn mã trên cho thấy trình xem trang chứ không phải PagerTitleStrip.

Tôi đã thay đổi mã để

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> 

Tôi cũng đã có thể tương thích ngược với API 8 bằng cách loại bỏ tất cả các mã trong ViewPager (ví dụ trang javadoc) để thao tác ActionBar và ActionBar.Tab.

-1

PagerTitleStrip là tín hiệu không tương tác của các trang hiện tại, tiếp theo và trước đây của một ViewPager. Nó thực sự được thiết kế để được sử dụng như một cái nhìn con của một widget ViewPager

Bước 1. Tạo bố trí 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> 

Bước 2. Tạo Hoạt động chứa ViewPager này (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

Các vấn đề liên quan