2015-10-13 216 views
0

尊敬的女士们,先生们,Android viewpager片段

首先,请不要标记我的问题。如果您认为我的问题太愚蠢,请让我知道,我会编辑它或删除。

所以我的实际问题是我有一个活动(extends Activity)。在该活动的布局,我创建FrameLayout,我再附上不同的四个片段(所以他们每个人extends Fragment的。所以在这个片段中的一个,我想实现滑动式标签(见截图)。

我知道,它通常做通过实现viewPager和FragmentPagerAdapter,但我不能这样做,因为如果我在我的片段中调用getSupportFragmentManager它给我一个错误如果我使用getActivity().getFragmentManager()它给了我错误, android.support.v4.app.fragmentmanager不能应用于android.app.fragmentmanager。我必须在我的片段中使用android.support.v4.app.fragment,否则我将无法实现我的活动视图(在开始描述时)

任何意见或建议将不胜感激。 screenshot

+2

我会不下来,叫你亲爱的。 – Androider

+0

@Androider哈哈。谢谢:))) – szholdiyarov

+0

@ user2912331 ..在你的片段类扩展与片段类的V4库和一切工作正常 –

回答

2

确保您使用Fragment类扩展您的片段来自支持库。你还需要使用FragmentActivity调用方法getSupportFragmentManager();

在另一方面,viewpager这是你的片段需要实现像往常一样,你可以找到互联网上除了getChildSupportFragmentManager();

这一个叫“嵌套的片段”。 PS:我不确定,但你也可以使用AppCompatActivity而不是FragmentActivityFragmentActivityActionBarActivity必须是已弃用

祝你好运

0

在其他碎片中使用碎片时,可以使用getChildFragmentManager()。

+0

仍然给我“android.support.v4.app.fragmentmanager不能应用于android.app.fragmentmanager” – szholdiyarov

+0

我通过使用android.support.v4.app.FragmentManager实现了我的FragmentPagerAdapter – szholdiyarov

+0

这听起来像你正在使用一个普通的片段而不是v4片段在你的应用程序中。另外请确保您从FragmentActivity而不是活动延伸。你得到的错误是说你得到了一个v4的FragmentManager,这是正确的,但是当你需要一个非v4的FragmentManager时你正在尝试使用它。 – vguzzi

0

新版本的Support Library v4(Android 4.2)解决了这个问题。为了做到这一点,只需做你的自定义FragmentPagerAdapter的构造是这样的:

public CustomFragmentPagerAdapter(android.support.v4.app.Fragment fragment) 
{ 
    super(fragment.getChildFragmentManager()); 

    // write your code here 
} 

这工作,因为新的Android版本批准使用嵌套的片段