我有几个活动扩展我的班级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
,只有少数Button
和TableLayout
个孩子。
答案 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.