【问题标题】:ViewPager inside Fragment without using nested fragment片段内的 ViewPager 不使用嵌套片段
【发布时间】:2016-12-22 12:28:02
【问题描述】:

我设法实现了这个answer。 viewpager 仅使用单个 XML,但我想要的是在片段而不是 Activity 中实现它。我尝试在 Fragment 中实现它,但 viewpager 什么也没显示。

这是我的 PagerAdapter:

class WizardPagerAdapter extends PagerAdapter {

    public Object instantiateItem(ViewGroup collection, int position) {
        Log.i("instantiateItem", "instantiateItem");
        int resId = 0;
        switch (position) {
            case 0:
                resId = R.id.llPageOne;
                break;
            case 1:
                resId = R.id.llPageTwo;
                break;
        }
        return collection.findViewById(resId); // I tried replacing this with pager.findViewById(resId)
    }

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

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public void destroyItem(ViewGroup parent, int position, Object object) {
        View view = (View) object;
        parent.removeView(view);
    }
} 

我是这样实现的:

    WizardPagerAdapter adapter = new WizardPagerAdapter();
    pager = (ViewPager) view.findViewById(R.id.pager);
    pager.setAdapter(adapter);

这是我的 XML 布局:

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

    <LinearLayout
        android:id="@+id/llPageOne"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="PAGE ONE IN" />

        <EditText
            android:id="@+id/etSample"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <EditText
            android:id="@+id/etSample2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llPageTwo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="PAGE TWO IN" />

        <EditText
            android:id="@+id/etTwo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

</android.support.v4.view.ViewPager>

所以基本上我想要的是为 ViewPager 的所有视图实现一个 XML 文件,但在 Fragment 内部。自从我学习为 android 编写代码以来只有几个月的时间,所以我很难让它工作。提前致谢。

注意:尽可能不要使用嵌套片段

【问题讨论】:

  • 感谢您的快速回复。但是是否可以不对视图/页面使用另一个片段?正如您在提供的链接中所见,OP 使用片段作为其视图/页面,尽管我们都在片段内实现 viewpager 的方式相似。

标签: java android xml


【解决方案1】:

【讨论】:

  • 谢谢,我已经阅读了该博客。我设法实现了单个 xml 布局 ViewPager,但就像那个使用活动的博客一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
相关资源
最近更新 更多