Android选项卡布局内部片段
我有一个带有导航抽屉的主要活动,我正试图实现一个类似于带标签的音乐播放应用程序的布局 MainActivity具有类似于容器的框架布局:Android选项卡布局内部片段,android,android-fragments,android-tabs,Android,Android Fragments,Android Tabs,我有一个带有导航抽屉的主要活动,我正试图实现一个类似于带标签的音乐播放应用程序的布局 MainActivity具有类似于容器的框架布局: <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> 我想在@+id/容器中放一个带标签的片段 最好的方法是什么 我想我可以创建一个MyFr
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我想在@+id/容器中放一个带标签的片段
最好的方法是什么
我想我可以创建一个MyFragment,它扩展Fragment并实现TablListener。
关联的布局可能如下所示
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
但是我该如何继续呢?尝试以下步骤:
- 首先,创建活动并扩展FragmentActivity并实现TabListener
- 其次,创建您的TabsPagerAdapter
- 第三,创建片段(如果需要多个片段,则创建片段)
- 然后,在请求将导航模式设置为选项卡后,可以在活动中设置适配器
public class SampleActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private ActionBar actionBar;
private TabsPagerAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.gd_pager);
getActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
String [] tabs = new String[]{"Tab1", "Tab2", "Tab3", "Tab3"};
for(String tab : tabs)
{
actionBar.addTab(actionBar.newTab()
.setText(tab)
.setTabListener(this));
}
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft)
{
viewPager.setCurrentItem(tab.getPosition());
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageSelected(int position)
{
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
});
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
}
感谢您的回复,但我不会更改活动,我会在MainActivity中包含的片段中实现它。就像谷歌音乐,我的图书馆。我不认为这是一个不同的活动,是吗?我只是更新了代码;当然,你也可以在你的碎片中做同样的事情。我要避免的步骤是第一步:我如何使用碎片来代替碎片活动?我之所以使用碎片活动,是因为我的寻呼机在用户刷卡时加载碎片。这是使用选项卡(操作栏)创建滑动视图的最简单也是最好的方法。你决定;如果您不想使用某个活动(FragmentActivity)的原因很严重,请考虑另一种选择。如果您在创建适配器和第二级寻呼机时调用该片段的片段管理器,也可以使用寻呼机来执行此操作。