gpt4 book ai didi

android - 无法在 Viewpager 中获取当前 View

转载 作者:IT老高 更新时间:2023-10-28 23:17:10 33 4
gpt4 key购买 nike

我正在使用 viewpager 跨多个页面显示一些文本。我正在尝试获取当前 View 并选择一个新页面。我想要获取当前 View 的原因是因为基于页码我正在更改某些 View 组件的一些属性,例如 textview、image 等。 我正在使用下面的代码来做同样的事情

ViewPager mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
View CurrView;
OnPageChangeListener pageChangelistener = new OnPageChangeListener() {
@Override
public void onPageSelected(int pageSelected) {
currView = mPager.getChildAt(mPager.getCurrentItem());
myTextView = (TextView)currView.findViewById(R.id.myTextView);
loadBookmarkSetting(pageSelected);//do some changes in myTextView properties based on the page number }
mPager.setOnPageChangeListener(pageChangelistener);

现在我面临的问题是,在我滚动 3 页后,当我来到第 4 页时,我在“myTextView = (TextView)currView.findViewById(R.id.myTextView);”这一行上得到空指针异常。这是因为 currView 为空。如果我在这里做错了任何想法。有没有其他方法可以在 viewpager 中捕获当前 View (页面),以便我可以根据我所在的页码对 View 进行更改?

最佳答案

您可以将 setTag 与您在 instantiateItem 方法 (PagerAdapter) 中返回的 View 一起使用。

所以,当您在 PagerAdapter 中实例化您的 View 时,该方法也是 instantiateItem(ViewGroup container, int position)),您应该在 View 中使用 setTag。

像这样:

view.setTag("myview" + position);
return view;

当你需要当前 View 时:

View view = (View) pager.findViewWithTag("myview" + pager.getCurrentItem());

关于android - 无法在 Viewpager 中获取当前 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16332034/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com