我使用视图寻呼机为Android应用程序滑动视图。我动态构建视图寻呼机。就像添加和删除项目一样。现在我想知道如何获取视图寻呼机项目的准确位置。例如,我有 3 个项目,我想在第二个或第一个项目时获得第 3 个数字位置。我曾经viewPager.getCurrentItem()
但它回到了我所在的位置。请建议我如何提供每个viewpager
项目的个人ID,并在项目是背景或屏幕上时使用它。谢谢请帮我解决这个问题,我已经为此离开了 2 周。提前致谢
public TabsPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return new MyWebBrowser();
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
@Override
public int getCount() {
return COUNT_TAB;
}
}
现在这段代码在我的片段类下,我想从WebView chrom class
将标题设置为网站标题。
@Override
public void onReceivedTitle(WebView view, String title) {
TAB_TITLE=title;
Toast.makeText(HomeActivity.this,title,Toast.LENGTH_LONG).show();
super.onReceivedTitle(view, title);
}
这个适配器:
class MyAdapter extends FragmentStatePagerAdapter
{
private final SparseArray<WeakReference<YourFragment>> mPageReferences;
public MyAdapter(FragmentManager fm) {
super(fm);
mPageReferences = new SparseArray<WeakReference<YourFragment>>();
}
@Override
public Fragment getItem(int i) {
WeakReference<YourFragment> fragment =
new WeakReference<YourFragment>(YourFragment.newInstance());
mPageReferences.put(i, fragment);
return fragment.get();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
mPageReferences.remove(position);
}
@Override
public int getCount() {
return number of fragment;
}
public YourFragment getFragment(int key) {
return mPageReferences.get(key).get();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
WeakReference<YourFragment> fragment = new WeakReference<YourFragment>((YourFragment) super.instantiateItem(container,
position));
mPageReferences.put(position, fragment);
return fragment.get();
}
}
您可以轻松地从mPageReferences
获取任何页面的引用,但要小心,因为它可能是空的,因为当您调用它时它可能尚未创建。 您可以使用(getFragment(int key)
将项目放在key
您可以从PagerAdapter
中知道当前位置。 通过调用pageAdapter.getItemPosition(itemNumber)
文档链接