Bouton ViewPager faites défiler jusqu'à la page spécifique
Un de mes mises en page à l'intérieur de mon ViewPager dispose d'un bouton. "R. layout.add_site". Je voudrais la possibilité de frapper le bouton et faites défiler jusqu'à la page spécifique pour moi. J'ai déjà la possibilité de passer à la page spécifique, mais je voudrais avoir les deux.
Maintenant, je suis sûr qu'il y a un moyen de le faire, mais pour une raison quelconque, je ne peux pas le comprendre.
Vous verrez que j'ai fait une tentative , mais juste ne sais pas quelle est la méthode à appeler afin de faire défiler à la page désirée. Qui est R. layout.principal.
Voici mon code.
public class fieldsActivity extends Activity {
Button addSiteButton;
Button cancelButton;
Button signInButton;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//to create a custom title bar for activity window
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.fields);
//use custom layout title bar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.topbar);
Pager adapter = new Pager();
ViewPager mPager = (ViewPager) findViewById(R.id.fieldspager);
mPager.setAdapter(adapter);
mPager.setCurrentItem(1);
addSiteButton = (Button) findViewById(R.id.addSiteButton);
addSiteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Don't know what method to call!?
}
});
cancelButton = (Button) findViewById(R.id.cancel_button);
signInButton = (Button) findViewById(R.id.sign_in_button);
}
private class Pager extends PagerAdapter {
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.field01;
break;
case 1:
resId = R.layout.add_site;
break;
case 2:
resId = R.layout.main;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
}
Toute aide est très appréciée!
Vous devez vous connecter pour publier un commentaire.
appel :
dans votre onClick() la méthode, ou pour une plus lisse de défilement:
fieldsActivity
classe.Je ne peux pas vraiment répondre exactement POURQUOI cela se produit, mais si vous retardez la setCurrentItem appel à quelques millisecondes, il doit travailler. Ma conjecture est que parce que pendant
onResume
il n'a pas été une passe de rendu, et le ViewPager besoin d'un, ou quelque chose comme ça.Réponse Originale À Cette Question: ici