【问题标题】:Android - Google Play like tabsAndroid - 类似 Google Play 的标签
【发布时间】:2013-05-14 13:12:06
【问题描述】:

Google 刚刚在其 Google Play 的标签页中添加了new look

我知道这可以通过 ViewPagerIndicator 完成,但我不想在我的应用程序中使用另一个库并将应用程序的大小再增加一个 MB 左右。

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

提前致谢。

【问题讨论】:

  • 非常感谢,我一直在寻找不会影响我的应用程序大小的东西,看起来就是这样。谢谢:-)
  • 我们是否必须使用外部库,默认情况下Android没有这个新的滑动标签?

标签: android tabs google-play


【解决方案1】:

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

设计支持库包含 TabLayout 小部件,它允许您实现 Google Play-lie 选项卡:

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

PagerSlidingTabStrip 库

这是一个即用型库,您可以find on Github

【讨论】:

  • 我可以在这个库中自定义标签栏(将其带到屏幕下方)。如果有怎么办?
【解决方案2】:

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

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

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

来自 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

【讨论】:

  • 请在此处包含答案的基本部分。
【解决方案3】:

试试这个library

Sample project

它使用ViewPager 和片段来显示标签,就像在 google play 上一样。

【讨论】:

  • 如果你已经实施了这个项目,那么我可以问 1 个问题吗?
  • 感谢您的回复,但是 ViewPagerIndicator 尺寸太大,我希望我的应用程序尽可能小,这就是我选择不使用 ViewPagerIndicator 的原因。
  • @EladCohen:当您尝试 ViewPagerIndicator 并运行生产构建以查看 ProGuard 摆脱未使用的类后净大小增加了多少时,您学到了什么?
  • 我实际上还没有运行生产版本,我仍在开发我的应用程序(我希望很快就会完成),然后我才会开始在安装了模拟器的真实设备上对其进行测试。是否可以使用 ProGuard 编译我的应用程序并在模拟器上使用它?
  • Eclipse 插件无法轻松地直接运行“经过保护的”应用程序。也就是说,没有什么能阻止您生成 APK 并使用 adb 将其推送到模拟器。另外,作为忠告,不要等到最后才在真实设备上进行测试。你可能会得到一些令人讨厌的惊喜
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多