Android 如何获取viewpager最后一页的位置?
我想将另一个布局充气到最后一页有viewpager的活动。这就像一个问答游戏,在回答完所有问题后(问答集中的问题和答案位于viewpager中膨胀的布局中),我想在viewpager的最后部分膨胀另一个布局,并显示一条消息,如“感谢您参加问答游戏!”,以便进行调试,我尝试过在Android 如何获取viewpager最后一页的位置?,android,android-layout,android-viewpager,Android,Android Layout,Android Viewpager,我想将另一个布局充气到最后一页有viewpager的活动。这就像一个问答游戏,在回答完所有问题后(问答集中的问题和答案位于viewpager中膨胀的布局中),我想在viewpager的最后部分膨胀另一个布局,并显示一条消息,如“感谢您参加问答游戏!”,以便进行调试,我尝试过在公共对象实例化项(视图容器,int位置)方法上编写一些条件,如下所示 if (position == getCount()){ //get count returns the number of pagesize //d
公共对象实例化项(视图容器,int位置)
方法上编写一些条件,如下所示
if (position == getCount()){ //get count returns the number of pagesize
//do some layout inflating here
}
为了调试,我使用Toast消息来显示当前页面,但如果我在最后一页上滑动viewpager,它不会显示任何内容,那么正确的解决方法是什么
更新代码
public Object instantiateItem(View container, int position) {
// TODO Auto-generated method stub
ViewPager mPager = (ViewPager) survey.findViewById(R.id.pagersurvey);
Toast.makeText(survey, "Page " + mPager.getCurrentItem(), Toast.LENGTH_SHORT).show();
LayoutInflater inflater = (LayoutInflater) survey
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layout = inflater.inflate(R.layout.view_survey, null);
((ViewPager) container).addView(layout, 0);
return layout;
}
我希望每张幻灯片/页面都显示其当前页面的toast消息,但viewpager的最后一页不显示任何toast消息。创建一个侦听器并将其设置在您的viewpager上:
public Object instantiateItem(View container, int position) {
// TODO Auto-generated method stub
Toast.makeText(survey, "Page " + position, Toast.LENGTH_SHORT).show();
LayoutInflater inflater = (LayoutInflater) survey
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = R.layout.normalView;
if(position==getCount)
resID = R.layout.SpecificView;
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
/**
* Get the current view position from the ViewPager by
* extending SimpleOnPageChangeListener class and adding your method
*/
public class DetailOnPageChangeListener extends ViewPager.SimpleOnPageChangeListener {
private int currentPage;
@Override
public void onPageSelected(int position) {
currentPage = position;
}
public final int getCurrentPage() {
return currentPage;
}
}
或者试试这行代码
mViewPager.getCurrentItem()
source和更多信息来自每当我进入我的viewpager的最后一页时,它都不会显示toast消息的位置,知道为什么吗?发布您的代码,以便我们检查并让您知道错误操作。mPager.getCurrentItem()会导致您在使用位置时出现问题。这应该能解决你的问题,先生。我仍然无法获取最后一张幻灯片/页面的位置。最后一页没有使用.getCurrentItem()返回任何内容;但其他人回来了