安卓 - 类似于谷歌应用商店的标签页

27

谷歌刚刚为其Google Play选项卡实施了一个新外观

我知道可以使用ViewPagerIndicator来实现,但我不想在我的应用程序中使用另一个库并使应用程序的大小增加大约1MB左右。

我目前正在使用android.support.v4.view.PagerTabStrip(就像在旧版Google Play中一样),我想知道是否也可以使用android support库来实现新的外观。

提前感谢。


1
看一下这个:https://github.com/astuetz/PagerSlidingTabStrip - rciovati
非常感谢,我一直在寻找不会增加我的应用程序大小的东西,看起来这就是了。谢谢 :-) - MrByte
1
我们需要使用外部库吗?默认情况下,Android没有这个新的滑动选项卡吗? - Eric
3个回答

53

设计支持库(当前方法)。

设计支持库包括 TabLayout 组件,可帮助您实现类似 Google Play 的选项卡:

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

然后进行初始化:

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);

完整的示例请参见 Cheesesquare 应用程序

PagerSlidingTabStrip 库

这是一个可直接使用的库,您可以在 Github 上找到它

屏幕截图 屏幕截图


我能否在这个库中自定义选项卡栏(将其放置在屏幕底部)?如果可以,应该如何操作? - Muralidharan Kathiresan

34

Google终于发布了他们的滑动标签API。

要使用SlidingTabsBasic,您首先需要从以下网址下载zip文件: http://developer.android.com/downloads/samples/SlidingTabsBasic.zip

  1. 将com.example.android.common.view包中的2个Java源文件包含到您的项目中。 您可以选择将它们移动到您项目中的适当包中。
  2. 要使用该组件,只需将其添加到您的视图层次结构中。 然后在您的Activity或Fragment中,通过调用mSlidingTabLayout.setViewPager(mViewPager);向SlidingTabsBasic提供您的viewPager即可。

来自Google的示例布局:

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

    <com.example.android.common.view.SlidingTabLayout
          android:id="@+id/sliding_tabs"
          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="0px"
          android:layout_weight="1"
          android:background="@android:color/white"/>

</LinearLayout>

在您的Activity的onCreate()方法中示例代码:

mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);

更多详细信息,请参考zip文件中的示例,其中包括SlidingTabsBasicFragment.java和fragment_sample.xml


请在此处包含答案的基本部分。 - CSchulz

1

尝试这个

示例项目

它使用ViewPager和片段来显示选项卡,就像在Google Play上一样。


如果你已经实现了这个项目,我可以问一个问题吗? - TheFlash
谢谢您的回复,但ViewPagerIndicator的大小太大了,我希望我的应用程序尽可能小,这就是为什么我选择不使用ViewPagerIndicator的原因。 - MrByte
当你尝试使用ViewPagerIndicator,并运行生产构建以查看ProGuard清除未使用类后的净大小增加时,你学到了什么? - CommonsWare
我实际上还没有运行生产版本,我仍在开发我的应用程序(希望很快就能完成),只有在完成后才会开始在真实设备上测试,而不是模拟器。是否可以使用ProGuard编译我的应用程序并在模拟器上使用? - MrByte
Eclipse插件不方便直接运行“proguarded”应用程序。尽管如此,您仍可以使用adb生成APK并将其推送到模拟器。另外,作为建议,请不要等到最后才在真实设备上进行测试。否则可能会遇到一些不愉快的惊喜。 - nicopico
非常感谢nicopico和CommonsWare提供的建议,我会测试一下。 - MrByte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接