0

我正在創建一個使用ViewPager將一組片段顯示爲幻燈片的活動。爲了指示要顯示的頁面,我使用:https://github.com/ongakuer/CircleIndicatorCircleIndicator在ViewPager中顯示頁碼

這是該活動的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"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/introduction_view_pager" 
    android:layout_weight="8" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
</android.support.v4.view.ViewPager> 

<me.relex.circleindicator.CircleIndicator 
    android:id="@+id/circle_indicator" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center" 
    android:layout_weight="1"/> 

<Button 
    android:layout_weight="1" 
    android:id="@+id/login" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="@string/skip_to_login" 
    android:onClick="skipToLogin"/> 

</LinearLayout> 

這是該活動的java文件:

public class IntroductionActivity extends FragmentActivity { 

static final int NO_OF_SLIDES = 4; 
ViewPager mViewPager; 
private PagerAdapter mPagerAdapter; 
Button mButton; 
CircleIndicator mCircleIndicator; 

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

    mButton = (Button)findViewById(R.id.login); 
    mCircleIndicator = (CircleIndicator)findViewById(R.id.circle_indicator); 
    mViewPager = (ViewPager)findViewById(R.id.introduction_view_pager); 
    mPagerAdapter = new SlideScreenPagerAdapter(getSupportFragmentManager()); 
    mViewPager.setAdapter(mPagerAdapter); 
    mCircleIndicator.setViewPager(mViewPager); 
    mViewPager.setPageTransformer(true, new ZoomOutPageTransformer()); 
} 

@Override 
public void onBackPressed() { 
    if (mViewPager.getCurrentItem() == 0) { 
     super.onBackPressed(); 
    } else { 
     mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1); 
    } 
} 
public class SlideScreenPagerAdapter extends FragmentPagerAdapter { 


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

    @Override 
    public Fragment getItem(int position) { 
     switch (position) { 
      case 0 : return new IntroductionViewPagerFragmentOne(); 
      case 1 : return new IntroductionViewPagerFragmentTwo(); 
      case 2 : return new IntroductionViewPagerFragmentThree(); 
      case 3 : return new IntroductionViewPagerFragmentFour(); 
     } 
     return null; 
    } 

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

片段工作完美,但CircleIndicator不顯示。我如何獲得CircleIndicator?

回答

1

你可以使用https://github.com/JakeWharton/ViewPagerIndicator更強大的功能^^試試吧!

+0

什麼是依賴我可以添加到的build.gradle? –

+0

你可以參考鏈接:http://stackoverflow.com/questions/25702884/add-viewpagerindicator-to-android-studio –

0

使用此gradle這個依賴

'com.viewpagerindicator:parent:2.4.1' 
+0

不工作!不確定我是否試圖添加指標。 –

0

粘貼在文件中下面的代碼片段(我已經使用了相同的圓圈指示符和它的作品般的魅力)。

mViewPager.setOnPageChangeListener(this); 

@Override 
    public void onPageSelected(int position) { 
     circleIndicator.onPageSelected(position); 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 

XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    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.support.v4.view.ViewPager 
     android:id="@+id/introduction_view_pager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.8" 
     android:layout_alignParentTop="true" /> 

    <me.relex.circleindicator.CircleIndicator 
     android:id="@+id/circle_indicator" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.1" 
     android:background="@android:color/darker_gray" /> 

    <Button 
     android:id="@+id/login" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="0.1" 
     android:layout_gravity="center" 
     android:layout_marginTop="5dp" 
     android:onClick="skipToLogin" 
     android:text="login" /> 

</LinearLayout>