我添加ViewPager的视图(而不是片段)位于片段的中间,但由于某种原因它没有显示。ViewPager没有显示在片段的中间
它有ViewGroup父容器(FrameLayout),viewpager动态添加(也试图直接插入到布局中)。
可能是我想念的东西。 对任何提示感到高兴,谢谢!
ViewPager:
public class TabsPagerAdapter extends PagerAdapter {
List<View> pages = null;
public TabsPagerAdapter(List<View> pages) {
this.pages = pages;
}
@Override
public int getCount() {
return pages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
View v = pages.get(position);
collection.addView(v, 0);
return v;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
}
片段:
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_product, container, false);
FrameLayout pagerPlaceholder = (FrameLayout) root.findViewById(R.id.viewpager_placeholder);
List<View> pages = new ArrayList<>();
View page = LayoutInflater.from(getDashboardActivity()).inflate(R.layout.test_layout, null);
TextView textView = (TextView) page.findViewById(R.id.text_view);
textView.setText("Test1");
pages.add(page);
View page2 = LayoutInflater.from(getDashboardActivity()).inflate(R.layout.test_layout, null);
TextView textView2 = (TextView) page2.findViewById(R.id.text_view);
textView2.setText("Test2");
pages.add(page);
TabsPagerAdapter tabsPagerAdapter = new TabsPagerAdapter(pages);
ViewPager viewPager = new ViewPager(getDashboardActivity());
viewPager.setAdapter(tabsPagerAdapter);
pagerPlaceholder.addView(viewPager, 0,
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
return root;
}
fragment_product.xml
...
<LinearLayout
android:id="@+id/fragment_catalog_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible">
...
<FrameLayout
android:id="@+id/viewpager_placeholder"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
你能发布完整的布局吗?我猜'getDashboardActivity()'返回'getActivity()',不是吗?因为我无法重现这个问题:当我改变错字('page2'而不是'page')时,我可以看到两个视图。 – Fllo