I currently have a fragment tab host, made by this tutorial http://maxalley.wordpress.com/2013/05/18/android-creating-a-tab-layout-with-fragmenttabhost-and-fragments/
The only difference is that I'm using this inside a fragment. So I have a fragment with the tabs, each tab has another fragment..
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
The fragment class
public class AddServiceFragment extends Fragment {
public AddServiceFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_add_service, container, false);
FragmentTabHost mTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent);
String[] tabs = new String[]{"text1", "text2"};
mTabHost.addTab(
mTabHost.newTabSpec("tab1").setIndicator(tabs[0], null),
MedicalHistoryFragment.class, null);
mTabHost.addTab(
mTabHost.newTabSpec("tab2").setIndicator(tabs[1], null),
MedicalHistoryFragment.class, null);
return view;
}
This works, I can see my tabs. Now I want to implement a viewpager, in order to be able to swipe left or right.
I've read this from the android developer page http://developer.android.com/training/animation/screen-slide.html
But I can't figure out, where should I put my viewpager? I want my fragment to be independent of my activity...
use the following solution i have put the view page like below.. and my work done..
You can implement the viewpager as a library.
First thing you need to import viewpager project to the eclipse workspace. [ I think you are modifying the project :Tabhost example]
so right click your Tabhost example project thn build path -> configure build path.. thn click Android ...when you click android you can see 2 section Project build Target & Library.So in Library you can add the viewpager Library.
Inorder to include viewpager library to the project ,you should import the library
"Existing Project” to your current one.
Step 1:-Download source code from GitHub.(https://github.com/JakeWharton/Android-ViewPagerIndicator)
Step2 :-In your Android Studio Project: File -> Project Structure -> add (+ symbol) -> Import Existing Project. Import just the folder called ”library”, not the entire project (leave the import options as Android Studio suggests).
step 3:-If the "compileSdkVersion" specified in your build.gradle doesn’t match with the one specified in the Android-ViewPagerIndicator project, change the second one. The same apply with any other property, such as "minSdkVersion" or even the current support library.
Step 4:-Add Android-ViewPagerIndicator project as a dependency to your build.gradle module: dependencies { compile project(':library') }
Step 5:- Sync project with gradle files.
TabHost doesn't provide ViewPager support.
Also, I suggest you to not use TabHost – this is old style.
Use PagerTabStrip
Look this Gist.
UPD: I add some code, for case, if this Gist be deleted;
MainActivity.java
activity_main.xml (without PagerTabStrip)
activity_main_2.xml (with PagerTabStrip)
fragment_page.xml
getPageTitle
UPD 2 With Fragment:
Hope it helps