Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialErik van de Ven
2,353 Pointssetnavigationmode is deprecated
Don't know what's with you guys, but my Android Studio is telling me that setNavigationMode is deprecated. So I wasn't able to view the tabs in the actionbar.
4 Answers
Erik van de Ven
2,353 PointsI pretty much figured out a solution. After watching this video (https://www.youtube.com/watch?v=tRg_eDfQ8fk) and reading the comments I was able to create two tabs. Still not the same as Ben created, but they work.
First make sure the activity_main.xml has a LinearLayout with the ViewPager INSIDE of it (and a SlidingTabLayout above it), like this:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.only_media.ribbit.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
</LinearLayout>
Then use the sample code from the android developer site to create 2 java classes: "SlidingTabLayout.java" (http://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html) and "SlidingTabStrip.java" (http://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabStrip.html)
don't forget to change the sample package names (=package com.example.android.common.view;) to your package names, for example com.my_company.ribbit;
And finally create another variable in MainActivity.java below SectionsPagerAdapter:
SectionsPagerAdapter mSectionsPagerAdapter;
SlidingTabLayout mSlidingTabLayout; //this one
And define the mSlidingTabLayout below the ViewPager inside MainActivity.java:
mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);
That's pretty much it.
hubertl
8,483 PointsHi all, one small hints - if anyone is not very familiarize yet with re writing the code you can still use the old library which was used by Ben and all function will be working (as for old code). As far I am concern it is not a recommended method however if someone is not able yet to write a new code for tabs please just use function import from Eclipse project and import project which is available in download section under video (this function is visible on the first wizard window in Android studio). Or go to file and then select Import Project.
The library which used for compiling the project from video is [com.android.support:support-v4:19.1.0].
Cheers, Hubert
Nicolas Hampton
44,638 PointsIf you want the new implementation, I've worked it all out here:
Please let me know if anything isn't working or is confusing, I've pretty fast with responses and updates.
hubertl
8,483 PointsHi Nicolas great work! :) Thank you.
Yuanduo LI
232 PointsYuanduo LI
232 Pointsit compiles well as you said. But the action bar does't turn out.