问题
I've created a swipe view with tabs as described in the android documentation several times before. In fact, stepping through the Eclipse project wizard pretty much sets you up with the basic ui using a ViewPager.
My question is this:
The application I'm building will only be supporting as far back as Android 4.0 (API level 14). So, I was considering ditching the support package altogether. However, I couldn't seem to find an example of a Swipe View with Tabs not using the ViewPager (which is only available in the support package).
Is there an api level 14&> equivalent to the ViewPager and could someone give me a working example of how to implement a Swipe View with Tabs interface without using the support library.
Otherwise, could someone give a good argument as to why I shouldn't even bother, use the support package and just be happy.
Edit: What I'm looking for is an authoritative answer regarding support library specific functionality such as the ViewPager. Are these features going to eventually be merged into the core API? Or will we continue to have to include the support package for these types of functionality? Please be specific with API versions and timelines.
Edit-1/15: I'm updating this question to stop the 'Me Too' answers I'm getting. At the time of the original posting of this question, the Android Developer documentation was much more vague on the purpose of the support libraries as they relate to functionality not included in the core SDK. They have since updated their docs to clarify things:
The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs.
This certainly clears things up a bit and notifies developers to not expect things like the ViewPager to ever be rolled into the core SDK functionality. I've accepted the answer which was the most relevant to the issue I was having. That is how to add support package functionality to an existing project w/o having to significantly change the codebase.
回答1:
I know this is a very old question but I think it's still relevant. I was searching for a workaround: using viewpager without having to convert all my entire projects to the v4 support library.
The answer is the v13 support library!. In this way you can have a viewpager on the activity but then use android.support.v13.app.FragmentStatePagerAdapter
to maintain compability with fragments and other useful stuff.
Hope it helps some google-addicted-searcher.
回答2:
As mentioned by @Luksprog you can copy ViewPager code in your own project and replace support library references by native one. Most likely you will need to do the same with FragmentPagerAdapter, FragmentStatePagerAdapter and PagerAdapter. I grab the code from grepcode.com.
It took me 2 hours to do the trick, even though I was a beginner with android. But it mean more line of code to maintain and in the end I switched back to support library.
回答3:
Now I'm no Android SDK guru, but I would just use the Support Library. Here's an excerpt from the RenderScript documentation,
"We strongly recommend using the Support Library APIs for accessing RenderScript because they include the latest improvements to the RenderScript compute framework and provide a wider range of device compatibility."
Now this is for the v8 Support Library, but I'm guessing that this recommendation can be extrapolated. It makes sense that the latest improvements will be in Android's support libraries because they can be updated independently from platform updates.
Just be sure to enable ProGuard before releasing so you can trim the excess fat of the unused parts of the API.
回答4:
Also you can use the ViewFLipper class but you have to manual implement the Animations and the GestureDetector, you can find some code here
回答5:
You should use support library package because it provide backward-compatible versions of Android Framework APIs. Use what they recommended is the best way to deal with android from my experience.
or read this
http://www.velir.com/blog/index.php/2010/11/17/android-snapping-horizontal-scroll/
回答6:
Using the support library is encouraged in general since it contains the latest piece of code of every API. What B.Young is pointing on RenderScript applies to all the other APIs.
-------- No need to keep reading.
Let's put an example. Let say that when Android 8 is released they introduce a new class to hold values referenced to keys called FastMap. To add support for older versions, Google releases a support library with this new class, and two months later during performance tests they find a way to make it more efficient, so they release an update of that support library with the optimized version of FastMap (since Android OS is frozen into the phone).
Additionally, and since big number releases are always a bit rushed, Google realizes that they introduced a very specific bug (yehh, it happens), which gets fixed on a newer update.
So if were to build an Android app for Android 8 and above and used the built-in APIs, you'd be missing all these improvements coming in the support code.
来源:https://stackoverflow.com/questions/19523871/android-swipe-view-with-tabs-without-using-the-v4-support-library