2014-04-07 15 views
1

我试图复制谷歌书报摊应用导航系统,在那里我可以在同一时间使用导航菜单的抽屉和标签,如: enter image description here导航抽屉和标签就像在书报摊

我m试图达到与newstand完全相同的效果,单一颜色的操作栏和制表符,以及不跨越整个屏幕长度的制表符 我能够反编译应用程序,并且我看到了另一个应用程序的来源使用这个(系列指南),但它们非常复杂,我无法找到并找出它在哪里以及如何实现。

我已经使用过Android Studio为我创造了导航抽屉中的模板,并没有影响添加标签

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mNavigationDrawerFragment = (NavigationDrawerFragment) 
       getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); 
     mTitle = getTitle(); 

     // Set up the drawer. 
     mNavigationDrawerFragment.setUp(
       R.id.navigation_drawer, 
       (DrawerLayout) findViewById(R.id.drawer_layout)); 

     ActionBar actionBar = getSupportActionBar(); 
     /* 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionBar.setDisplayShowTitleEnabled(true); 


     ActionBar.Tab tab = actionBar.newTab() 
       .setText("Artist") 
       .setTabListener(new TabListener<PlaceholderFragment>(
         this, "artist", PlaceholderFragment.class)); 
     actionBar.addTab(tab); 

     tab = actionBar.newTab() 
       .setText("album") 
       .setTabListener(new TabListener<PlaceholderFragment>(
         this, "album", PlaceholderFragment.class)); 
     actionBar.addTab(tab); 
*/ 

     actionBar.setHomeButtonEnabled(true); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     String[] tabs = { "Top Rated", "Games", "Movies" }; 
     // Adding Tabs 
     for (String tab_name : tabs) { 
      actionBar.addTab(actionBar.newTab().setText(tab_name) 
        .setTabListener(new TabListener<PlaceholderFragment>(
          this, "album", PlaceholderFragment.class))); 
     } 
    } 

到目前为止,我已经使用了Android库尝试这样尝试过,但我不使用外部Onex公司就像福尔摩斯的ActionBar

回答

3

You're looking for Google's SlidingTabLayout介意。而SeriesGuide是开源的,但使用PagerSlidingTabStrip

要使用谷歌的SlidingTabLayout,你需要在两个类复制到项目。你需要的类:

布局例实施SlidingTabLayout会看起来这就像:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

    <your_path_to.SlidingTabLayout 
      android:id="@+id/slidingTabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

</LinearLayout> 

使用膨胀布局和初始化SlidingTabLayoutView.findViewById,您可以拨打SlidingTabLayout.setViewPager来绑定ViewPager到标签。

Check out Google's example for a full project

+1

非常感谢你的快速反应,原谅无知,但我怎么可以使用SlidingTabLayout在我的应用程序? 通常我已经处理了jar文件,我将它们放在lib文件夹中,就是这样。 我正在使用Android Studio – DoubleP90

+0

@ DoubleP90我做了更详细的编辑。没有'jar'可以使用,你可以将这些类复制到你的项目中。 – adneal

+0

@adneal看起来像SeriesGuide现在使用SlidingTabLayout。感谢您的链接。 – yshrsmz