Я покажу вам, как реализовать viewpager в вашей деятельности и как установить адаптер в viewpager и показать фрагменты в viewpager.
Во-первых, вы должны добавить ViewPager в макете деятельности:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="42dp"
android:background="?attr/colorPrimary"
android:elevation="4dp"
app:tabIndicatorColor="@color/colorAccent"
app:tabMode="fixed"
app:tabTextColor="@color/white"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tabLayout"/>
</RelativeLayout>
Затем следует установить адаптер и tablayout к вашему ViewPager:
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
TrialAdapter adapter = new TrialAdapter(this, getFragmentManager());
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
Вы должны реализовать TrialAdapter как:
public class TrialAdapter extends FragmentStatePagerAdapter {
private Context context;
public TrialAdapter(Context context,FragmentManager fragmentManager) {
super(fragmentManager);
this.context = context;
}
@Override
public Fragment getItem(int position) {
if(position == 0){
return new TrialFragment();
} else{
return new TrialFragment();
}
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
@Override
public int getCount() {
return 2;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public CharSequence getPageTitle(int position) {
if(position == 0){
return "Tab-1";
} else{
return "Tab-2";
}
}
}
Вы должны wri т.е ваш фрагмент как:
public class TrialFragment extends Fragment {
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_trial, container, false);
return view;
}
}
Наконец, вы должны создать fragment_trial.xml в макете ресурсов:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Trial Fragment"/>
</RelativeLayout>
Я рекомендую вам использовать android.app.Fragment
и android.support.v13.app.FragmentStatePagerAdapter
поэтому вам нужно добавить ниже линии к вашему файлу градации (модуль приложения):
compile 'com.android.support:support-v13:+' // for FragmentStatePager
compile 'com.android.support:design:23.3.0' // for TabLayout
Удачи бро.
Вам нужно использовать ViewPager, выше url, который вы написали на вопрос, показывает все о viewpager. Вы можете справиться с этим. –
Да, я понимаю общую структуру, я сделал простой пример, копируя эти классы в новом проекте. Но я не мог понять, как поместить все в мой существующий проект. Именно по этой причине я попросил о помощи. –