将ViewPager添加到Activity,它使用导航抽屉扩展超类

时间:2014-11-30 01:14:08

标签: android android-viewpager

我有几个活动扩展我的班级DrawerActivity,所以他们会有一个导航抽屉。这些活动中只有一项需要ViewPager

问题:如何仅将ViewPager添加到其中一项活动中ActivityA

我对创建ViewPager有些熟悉,但在这种情况下,我不确定将ViewPager代码放在何处,以及要使用的布局。我已经看过一些例子,包括Google开发者网站上的官方教程,但我不确定如何在我的应用程序中最好地实现它。

我在下面提供了一些相关代码,但如果您需要了解更多信息,请与我们联系。感谢任何建议,谢谢!

DrawerActivity' onCreate

setContentView(R.layout.activity_fragment);

if (fragment == null)
{
    fragment = createFragment();
    fm.beginTransaction()
            .add(R.id.fragmentContainer, fragment)
            .commit();
}

布局activity_fragment.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </RelativeLayout>

    <ListView android:id="@+id/leftDrawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>

</android.support.v4.widget.DrawerLayout>

ActivityA

public class ActivityA extends DrawerActivity
{
    //this is all I do in this activity
    @Override
    protected Fragment createFragment()
    {
        UUID id = (UUID) getIntent().getSerializableExtra(FragmentA.EXTRA_ID);
        return FragmentA.newInstance(id);
    }
}

FragmentA&#39; onCreateView

View v = inflater.inflate(R.layout.fragment_a, parent, false);

布局fragment_a.xml是一个简单LinearLayout,只有少数ButtonTableLayout个孩子。

1 个答案:

答案 0 :(得分:1)

fragment_a.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

         />

</RelativeLayout>

并创建一个适配器,例如FragmentStatePagerAdapter,并将其填入您要在viewpager中显示的内容。请注意,因为您在片段中使用了viewpager,所以您应该传递ChildFragmentManaget而不是活动FragmentManager.