ViewPager没有显示任何内容。

4
请给些建议。我无法使ViewPager工作。以下是我的操作步骤:
1)这是我的LinearLayout,其中我将放置ViewPager。我确信它能够正常工作。我可以在其中放置任何视图:
<LinearLayout
    android:id="@+id/view_contact_values_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/view_contact_sub_nav"
    android:orientation="vertical"
    android:paddingLeft="10dip" >
</LinearLayout>

2) 接下来,我会在代码中创建ViewPager:

private void createViewPager() {
    ViewPager viewPager = new ViewPager(this);
    DatesPagerAdapter datesPagerAdapter = new DatesPagerAdapter(this);
    viewPager.setAdapter(datesPagerAdapter);
    viewPager.setCurrentItem(1);
    llContainer.addView(viewPager);
}

3) 还有 ViewPagerAdapter(PagerAdapter):

@Override
public Object instantiateItem(ViewGroup container, int position) {
    LayoutInflater inflater = (LayoutInflater) container.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View v = inflater.inflate(R.layout.dates_carusel_item, null);
    ((ViewPager) container).addView(v, 0);
    return v;
}

@Override
public int getCount(){
    return 5;
}

但是,当我打开我的Activity时,我的LinearLayout中什么也没有显示。 备注:对不起,问题的格式有点不好。这个编辑器中的代码标签很奇怪。

日期旋转木马项包含任何可见内容吗? - Adrián Rodríguez
当然可以。有一个包含所有可见元素的大型布局... - Ok-Alex
1个回答

0
取一个扩展Fragemnt类的类。
class ExampleFragment extends Fragment
{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.dates_carusel_item, null);
  return v;
}

在你的PagerAdapter中这样做。
    private class DatesPagerAdapter extends FragmentPagerAdapter
{
    public DatesPagerAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int arg0) {
        ExampleFragment fragment=new ExampleFragment();
        Bundle bundle=new Bunlde();
        //put bundle data here
        fragment.setArguments(bundle);
        return fragment;
    }
    @Override
    public int getCount() {
        5;
    }
}

无论您想设置哪个视图,请在示例片段上进行,并添加您的ViewPager。
ViewPager pager=new ViewPager(this);
pager.setAdapter(new DatesPagerAdapter);
llContainer.addView(pager)

将您的ViewPager直接添加到xml中,以便正确对齐,否则如果出现可见性错误,则可以在运行时设置LayoutParams。
     android:layout_width="match_parent" android:layout_height="wrap_content"      android:orientation="vertical" android:layout_below="@id/view_contact_sub_nav"android:id="+id/view_contact_values_container"
android:paddingLeft="10dip">
<android.support.v4.view.ViewPager
    android:id="@+id/imagesgallery"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
</LinearLayout>

"_Vo.get_quizList().size();" 是什么意思? - Ok-Alex
抱歉,我无法理解。如何将片段添加到适配器中? - Ok-Alex
1
你已经创建了你的 Fragment 吗?请像上面一样进行膨胀并返回视图。复制上述的 DatesPagerAdpater 类,并将该适配器设置为你的 ViewPager,然后再将其添加到 XML 中,而不是在运行时添加。 - sheetal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接