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;
}

但是当我打开我的活动时,我的 LinearLayout 中没有显示任何内容。PS:抱歉问题样式不好。这个编辑器中的代码标签很奇怪。

4

1 回答 1

0

参加扩展 Fragment 的课程

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)

在 xml 中添加您的 ViewPager 以使其正确对齐,否则您可以在运行时 setLayoutParams 如果它是一个可见性错误

     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>
于 2012-12-05T10:27:46.923 回答