2012-04-12 42 views
3

有谁知道一个教程/例如Ice Cream Sandwich样式的选项卡(带有刷卡左/右 - 在YouTube应用程序等)是的向后兼容支持库。只需要API等级14或15.Ice Cream Sandwich的风格标签

我的项目只需在我的Galaxy Nexus上工作Ice Cream Sandwich。所以我想知道如何做到这一点,而不需要向后兼容。

感谢, 山姆

+0

[这](http://viewpagerindicator.com/)将帮助您编码快乐 – 2012-04-12 14:07:27

+0

这是解决你的问题库。根据Apache许可证版本2.0开发和分发。最初基于由PatrikÅkerfeldt开发的小部件。与标题指示器类似,但在滚动和动画水平制表符中显示尽可能多的标题。 – 2012-04-12 14:15:15

+0

鉴于我想要这样做的理由“没有向后兼容性”是因为我认为它会更简单。我已经结束了使用这个,因为它是最简单的选项,并为您提供免费的向后兼容性。 – Garcon 2012-04-14 16:25:00

回答

2

嗯,有没有真正的理由特别避免向后兼容性,因为如果你不使用它想要旧设备,可以为您的应用程序清单中指定了最低API版本。

这就是说,ViewPager是,谷歌做它的方式,它利用Fragments,这虽然他们是向下兼容的,均内置于Android的4

如果你不小心用Fragments只是想要从View滑动到View,您可以使用常规PagerAdapter而不是FragmentPagerAdapter,或者您可以使用ViewFlow

ViewFlow页面上的示例用于支持v4,但也有一些用于API 13+的示例here,它可能更接近您要查找的内容(特别是this one)。

+0

我想我的思路是,它可能会简单得多,代码少。我可能在那里是错误的...... – Garcon 2012-04-12 14:15:32

+0

据我所知,为了兼容目的显式完成的'ViewPager'页面上的代码示例中唯一的事情就是它从'FragmentPagerSupport'中获得的一个类。其他一切都是非常标准的样板:创建你的'Activity',给它一个标签栏,一个Adapter,以及一组用于显示该Adapter的“Views”(或“Fragments”)。 – 2012-04-12 14:20:08

+0

尽管他们给出的实例比较复杂,因为它特别使用了操作栏选项卡 - 我不知道你是否想要这样做,但它确实有一个很好的ICS外观 - '感觉它'。 – 2012-04-12 14:23:01

1

我认为你的API 14+设备已经达到了ActionBar with "tabs+swipe" navigation。整个事情可以适应预蜂窝设备,因为我恰好为自己做了一个演示。

最简单的方法是,基本上,你只需要:

  • 扩展/进口com.actionbarsherlock类whevever可能!
  • 导入android.support.v4(而不是通常的android)包,只要有可能!

然而,在你能做到这些,你就必须得先:

例如(MainActivity.java):

import com.actionbarsherlock.app.ActionBar.Tab; 
import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.view.Menu; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.ViewPager; 

public class MainActivity extends SherlockFragmentActivity implements ActionBar.TabListener {/*...*/} 
+0

向下投票,因为这与所要求的完全相反。据推测,无效向后兼容的原因是为了避免学习和/或取决于外部库。 – Henry 2012-10-25 15:31:40

+0

正如我回答这个问题时所记得的那样,这个问题没有被这样说过。考虑到现在如何解决这个问题,我的答案确实应该被拒绝。很遗憾,像我这样的新人会说。笑。 – easoncxz 2012-11-17 21:52:12