xml-pagerファイルに「左」と「右」の2つのボタンがあります。設定したいのですが、「左」ボタンをクリックするとページが自動的に左にスワイプし、「右」ボタンをクリックすると自動的に右に移動します。誰かが私のアクティビティファイルに入れるコードを教えてもらえますか?ありがとう!
質問する
4565 次
2 に答える
8
次/前のページに移動するには、次のようなものを使用します。
private void nextPage() {
int currentPage = viewPager.getCurrent();
int totalPages = viewPager.getAdapter().getCount();
int nextPage = currentPage+1;
if (nextPage >= totalPages) {
// We can't go forward anymore.
// Loop to the first page. If you don't want looping just
// return here.
nextPage = 0;
}
viewPager.setCurrentItem(nextPage, true);
}
private void previousPage() {
int currentPage = viewPager.getCurrent();
int totalPages = viewPager.getAdapter().getCount();
int previousPage = currentPage-1;
if (previousPage < 0) {
// We can't go back anymore.
// Loop to the last page. If you don't want looping just
// return here.
previousPage = totalPages - 1;
}
viewPager.setCurrentItem(previousPage, true);
}
于 2013-01-13T16:10:51.880 に答える
1
android.support.v4の場合、次を使用できます。
ViewPager pager;
pager = (ViewPager) findViewById(R.id.viewPager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
次のようなveiwpagerアダプタクラスがあります。
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch(pos)
{
case 0: return WelcomeFrag1.newInstance("Page 1");
case 1: return WelcomeFrag2.newInstance("Page 2");
case 2: return WelcomeFrag3.newInstance("Page 3");
case 3: return WelcomeFrag4.newInstance("Page 4");
case 4: return WelcomeFrag5.newInstance("Page 5");
default: return WelcomeFrag1.newInstance("Page 1");
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 5;
}
}
そして最後に、次のような2つのメソッドnextPage()とpreviousPage()があります。
private void nextPage() {
int currentPage = pager.getCurrentItem();
int totalPages = pager.getAdapter().getCount();
int nextPage = currentPage+1;
if (nextPage >= totalPages) {
// We can't go forward anymore.
// Loop to the first page. If you don't want looping just
// return here.
nextPage = 0;
}
pager.setCurrentItem(nextPage, true);
}
private void previousPage() {
int currentPage = pager.getCurrentItem();
int totalPages = pager.getAdapter().getCount();
int previousPage = currentPage-1;
if (previousPage < 0) {
// We can't go back anymore.
// Loop to the last page. If you don't want looping just
// return here.
previousPage = totalPages - 1;
}
pager.setCurrentItem(previousPage, true);
}
注意:現在のページのインデックスを取得するためにgetCurrentItem()を使用しています
于 2014-05-08T02:43:20.550 に答える