我创建了一个显示 3 个相似片段的 viewpager。这些片段具有相同的布局,并且这些布局中的视图具有相同的 id(例如:DetailedPowerFragment 中的 RatingBar 具有 id detailRatingBar,DetailedWaterFragment 中的 RatingBar 也是如此)
但是,当我尝试在每个片段中分别使用 findViewById 设置 RatingBar 的值时,似乎找到了不同的 RatingBar。
所以
final RatingBar ratingBar = (RatingBar)getSherlockActivity().findViewById(R.id.ratingBar);
ratingBar.setEnabled(false);
在DetailedWaterFragment 中,将在DetailedPowerFragment 中设置RatingBar。如果相关,您将在下面看到创建 viewpager 的代码 - 但是是什么导致了这个问题?我是否需要为我的所有视图提供一个新的 ID 以确保不会发生这种情况?
detailedFragments = new ArrayList<SherlockFragment>();
detailedFragments.add(new DetailedPowerFragment());
detailedFragments.add(new DetailedHeatFragment());
detailedFragments.add(new DetailedWaterFragment());
mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), detailedFragments);
mViewPager.setAdapter(mMyFragmentPagerAdapter);