我使用的是带有PagerTitleStrip的自定义viewpager,两者都受安卓兼容包的支持。按照建议,我这样使用它:
<snok.stubefrie.DayPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/strip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
</snok.stubefrie.DayPager>然而,标题栏与我的viewpager的实际内容重叠(都从0,0开始)。有什么想法吗?
发布于 2012-01-26 00:38:50
如何将视图添加到ViewPager?
当我遇到同样的问题时,原因是在我的PagerAdapter实现中添加了位置错误的视图。
糟糕的代码是这样的。
viewPager.setAdapter(new PagerAdapter() {
@Override
public Object instantiateItem(ViewGroup pager, int position) {
View view = createView(position);
((ViewPager) pager).addView(view, position);
return view;
}
@Override
public void destroyItem (ViewGroup pager, int position, Object view) {
((ViewPager) pager).removeViewAt(position);
}
...
});这段代码一直在工作,然而,当我开始使用PagerTitleStrip时,PagerTitleStrip视图成为ViewPager的第一个子视图,因此addView(view, 0)破坏了ViewPager的内部结构。
通过替换addView和removeView修复了此问题,如下所示。
addView(view)
希望它能帮上忙!
发布于 2012-05-07 19:20:23
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.page_view, null);
((ViewPager) collection).addView(view);
getPageTitle(position);
return view;
}只需删除addView方法的索引。解决了带钢重叠问题。
https://stackoverflow.com/questions/8889305
复制相似问题