Android的标签布局内片段 [英] Android Tab Layout inside Fragment

查看:174
本文介绍了Android的标签布局内片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个抽屉式导航主要活动,我想实现像Play音乐应用的布局与标签。

I have a main Activity with a navigation drawer and I'm trying to realize a layout like Play Music App with tabs.

在MainActivity具有类似容器的FrameLayout:

The MainActivity has a FrameLayout like a container:

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

和我想要把@ + ID /容器内与标签片段。

and I want to put inside the @+id/container a Fragment with Tabs.

如何是最好的方式做到这一点?

How's the best way to do this?

我想我可以创建延伸片段并实现TabListener一个MyFragment。
相关的布局也能像

I thought I can create a MyFragment which extends Fragment and implements TabListener. The associated layout could be like

<?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>

但后来我该怎么继续?

But then how can I proceed?

推荐答案

尝试下面的步骤如下:


  • 首先,创建您的活动,并延长FragmentActivity和实施TabListener

  • 其次,创建你TabsPagerAdapter

  • 第三,创建片段(或片段如果需要不止一个)。

  • 您就可以请求导航模式下的标签后,设置您的活动适配器。

code样品

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) {

   }
}

这篇关于Android的标签布局内片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆