2014-01-24 45 views
2

這是我的MainActivity啓動Circlepageindicator。如何隱藏viewpager中第一個片段上的上一個按鈕和最後一個片段上的下一個按鈕?

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 

public class MainActivity extends FragmentActivity { 
ViewPager pager; 
Button prev,next; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    MyPagerAdapter adapter=new MyPagerAdapter(); 
    pager = (ViewPager)findViewById(R.id.view_pager); 
    pager.setAdapter(adapter);  
    pager.setCurrentItem(0); 

    //Bind the title indicator to the adapter 
    CirclePageIndicator titleIndicator = (CirclePageIndicator)findViewById(R.id.titles); 
    titleIndicator.setViewPager(pager); 


    prev = (Button) findViewById(R.id.prev); 
    prev.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Do something in response to button click 
       pager.setCurrentItem(pager.getCurrentItem() - 1); 

      } 
     }); 

    next = (Button) findViewById(R.id.next); 
    next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Do something in response to button click 
       pager.setCurrentItem(pager.getCurrentItem() + 1); 

      } 
     }); 

} 

@Override 
public void onBackPressed() { 
    if (pager.getCurrentItem() == 0) { 
     // If the user is currently looking at the first step, allow the system to handle the 
     // Back button. This calls finish() on this activity and pops the back stack. 
     super.onBackPressed(); 
    } else { 
     // Otherwise, select the previous step. 
     pager.setCurrentItem(pager.getCurrentItem() - 1); 
    } 
} 

} 

我有Circlepageindicator正常工作與上一個和下一個按鈕。但我想隱藏上一個片段上的前一個按鈕和最後一個片段上的下一個按鈕。新手在這。任何建議都被接受。謝謝。

enter image description here

更新:

找到解決方案。

CirclePageIndicator titleIndicator = (CirclePageIndicator)findViewById(R.id.titles); 
    titleIndicator.setViewPager(pager); 

    titleIndicator.setOnPageChangeListener(new OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int arg0) { 
      // TODO Auto-generated method stub 
      if(pager.getCurrentItem() == 0) 
      { 
       prev.setVisibility(View.GONE); 
       next.setVisibility(View.VISIBLE); 
      } 
      if(pager.getCurrentItem() == 1) 
      { 
       prev.setVisibility(View.VISIBLE); 
       next.setVisibility(View.VISIBLE); 
      } 
      if(pager.getCurrentItem() == 2) 
      { 
       prev.setVisibility(View.VISIBLE); 
       next.setVisibility(View.GONE); 
      } 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

現在在滑動和點擊按鈕單擊按鈕時,按鈕顯示/隱藏在各自的頁面。

回答

2

在OnPageChangeListener的ViewPager的onPageScrolled方法中 titleIndicator.setOnPageChangeListener(new PagerChangeListener());

class PagerChangeListener implements OnPageChangeListener { 
    @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 

       pageSelected = arg0; 

       switch (pageSelected) { 
       case 0: { 

        preButton.setVisibility(View.INVISIBLE); 
       } 

        break; 

       case 2: { 

        nexButton.setVisibility(View.INVISIBLE); 
       } 

        break; 

       default: { 
        nexButton.setVisibility(View.VISIBLE); 
        preButton.setVisibility(View.VISIBLE); 
       } 
        break; 
       } 

      } 
} 
+1

如果我在MainActivity.java設置pager.OnPageChangeListener,CirclePageIndicator將無法正常工作。 –

0

它非常簡單。我希望它會爲你工作

只要找到

// For previous button 
if(pager.getCurrentItem() == 0) 
{ 
previousBtn.setVisibility(View.GONE); 
} 

// For Next Button 
    if(pager.getCurrentItem() == YOUR LAST ITEM INDEX) 
     { 
     nextBtn.setVisibility(View.GONE); 
     } 

我希望它會爲你工作.. 。

欲瞭解更多信息剛剛經歷鏈接:

http://dwij.co.in/greendroid-library-implementation-in-android-project/

+0

您能否解釋我在哪裏放置上面的代碼。我的類是MainActivity.java(上面粘貼),CirclePageIndicator.java,MyPagerAdapter.java和PageIndicator.java –

+0

哦,它在MainActivity.java文件中的onClickListener按鈕上。 –

+0

按鈕隱藏,但他們不會再次出現,如果我刷回來。即使我讓他們也可見。 –

0
This is my **MainActivity.java** 

final ViewPager pager = (ViewPager) findViewById(R.id.pager); 

    **pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()** 
    { 
       @Override 
       public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageSelected(int position) { 
       if (position == 0) { 
        ivprvs.setVisibility(View.GONE); 
        ivnxt.setVisibility(View.VISIBLE); 
       } 
       if (position == 1) { 
        ivprvs.setVisibility(View.VISIBLE); 
        ivnxt.setVisibility(View.VISIBLE); 
       } 
       if (position == 2) { 
        ivprvs.setVisibility(View.VISIBLE); 
        ivnxt.setVisibility(View.GONE); 
       } 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
+0

@Riddhi Shah ...可能是我的回答將解決您的問題.. –

相關問題