FragmentStatePagerAdapter 向 TextView 返回错误的位置
Posted
技术标签:
【中文标题】FragmentStatePagerAdapter 向 TextView 返回错误的位置【英文标题】:FragmentStatePagerAdapter returning wrong position to TextView 【发布时间】:2015-08-23 12:38:52 【问题描述】:好的,我有一个 Activity,其中有 viewpager 和 textview。然后我有扩展 FragmentStatePagerAdapter 的适配器,这是它的代码:
public AdapterCustomPage(FragmentManager fm, Context context, TextView TV )
super(fm);
mContext = context;
mTV = TV;
@Override
public Fragment getItem(int position)
// Create fragment object
Fragment fragment = new ImageFragmentKatalozi();
Bundle args = new Bundle();
Log.i("Poizicija" , String.valueOf(position));
String url = Static.katalozi.getSlikeKataloga().get(position);
args.putString("url", url);
fragment.setArguments(args);
mTV.setText(String.valueOf(position + 1) + "/" + String.valueOf(maxBrojStrana));
String link = Static.katalozi.getUrl();
args.putString("linkKataloga", link);
if(position == 0)
Message.message(mContext, "Na prvoj stranici kataloga ste");
if(position == getCount() - 1)
Message.message(mContext, "Na poslednjoj stranici kataloga ste");
return fragment;
@Override
public int getItemPosition(Object object)
pozicija = super.getItemPosition(object);
return super.getItemPosition(object);
@Override
public int getCount()
return maxBrojStrana;
最后我有片段:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View rootView = inflater.inflate(R.layout.fragment_katalozi_slike, container, false);
args = getArguments();
imageView = (TouchImageView) rootView.findViewById(R.id.imageViewAdapterZaListanjeKataloga);
Picasso.with(getActivity()).load(args.getString("url")).placeholder(R.drawable.load).error(R.drawable.error).into(imageView);
return rootView;
现在,问题是,我在主要活动中的 TextView 并没有给我返回片段的正确位置。它提供了很好的 getCount 位置,但是当我向右滑动时,它变为 + 1,当我向左滑动时,它下降到 0。当我将整个 textView 代码和 xml 放在片段部分时,它工作得很好,但是然后它与片段一起滑动。有什么帮助吗?
【问题讨论】:
【参考方案1】:mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener()
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
@Override
public void onPageSelected(int position)
brojStranica.setText(String.valueOf(position + 1) + "/" + String.valueOf(Static.katalozi.getSlikeKataloga().size()));
@Override
public void onPageScrollStateChanged(int state)
);
【讨论】:
以上是关于FragmentStatePagerAdapter 向 TextView 返回错误的位置的主要内容,如果未能解决你的问题,请参考以下文章
FragmentStatePagerAdapter 向 TextView 返回错误的位置
如何将 FragmentFactory 与 FragmentStatePagerAdapter 一起使用
getItem 函数在 FragmentStatePagerAdapter 中调用两次?
FragmentPagerAdapter和FragmentStatePagerAdapter区别?