ViewPager and Fragment combination, viewpagerfragment
The main interface is implemented by Viewpager and fragment.
However, I have not solved the problem of pre-loading.
The following code is relatively simple:
Package com. ithello. dingding; import java. util. arrayList; import java. util. list; import com. ithello. dingding. fragment. fourFragment; import com. ithello. dingding. fragment. oneFragment; import com. ithello. dingding. fragment. threeFragment; import com. ithello. dingding. fragment. twoFragment; import android. OS. bundle; import android. support. v4.app. fragment; import android. support. v4.app. fragmentActivity; import androi D. support. v4.app. fragmentManager; import android. support. v4.app. fragmentPagerAdapter; import android. support. v4.view. viewPager; import android. support. v4.view. viewPager. onPageChangeListener; import android. view. view; import android. view. view. onClickListener; import android. view. window; import android. widget. imageView;/*** main interface ** @ author zh **/public class MhomeActivity extends FragmentActivity impleme CNT OnClickListener {private ImageView imageView, imageView2, imageView3, imageView4; // private Fragment fragment, fragment2, fragment3, fragment4; private ViewPager viewPager; private List <Fragment> list; @ Override protected void onCreate (Bundle arg0) {// TODO Auto-generated method stub super. onCreate (arg0); requestWindowFeature (Window. FEATURE_NO_TITLE); setContentView (R. layout. homeactivity); set View (); setData ();} private void setView () {// TODO Auto-generated method stub imageView = (ImageView) findViewById (R. id. iv_message); imageView2 = (ImageView) findViewById (R. id. iv_ding); imageView3 = (ImageView) findViewById (R. id. iv_work); imageView4 = (ImageView) findViewById (R. id. iv_atten); viewPager = (ViewPager) findViewById (R. id. viewpager); imageView. setOnClickListener (this); imageView2.set OnClickListener (this); imageView3.setOnClickListener (this); imageView4.setOnClickListener (this);} private void setData () {// TODO Auto-generated method stub // ** // * ViewPager. setOffscreenPageLimit (int // * limit). The parameter can be set to 0 or 1. If the parameter is smaller than 1, 1 is used as the parameter // * by default, viewPager loads two Fragment by default. Therefore, we only need to call it and set the number of Fragment loaded. // * // ViewPager. setOffscreenPageLimit (1); list = new ArrayList <Fragment> (); list. add (new OneFragment (); list. add (new TwoFragment (); list. add (new ThreeFragment (); list. add (new FourFragment (); viewPager. setAdapter (new MyAdapter (getSupportFragmentManager (), list); viewPager. setOnPageChangeListener (new OnPageChangeListener () {@ Override public void onPageSelected (int arg0) {// TODO Auto-generated method stub setShow (); if (arg0 = 0) {imageView. setImageResource (R. drawable. tab_mes_pressed);} else if (arg0 = 1) {imageView2.setImageResource (R. drawable. tab_ding_pressed);} else if (arg0 = 2) {imageView3.setImageResource (R. drawable. tab_work_pressed);} else if (arg0 = 3) {imageView4.setImageResource (R. drawable. tab_attent_pressed); }}@ Override public void onPageScrolled (int arg0, float arg1, int arg2) {// TODO Auto-generated method stub} @ Override public void merge (int arg0) {// TODO Auto-generated method stub});} // used to reset the control property protected void setShow () {// TODO Auto-generated method stub imageView before the next event. setImageResource (R. drawable. tab_mes_normal); imageView2.setImageResource (R. drawable. tab_ding_normal); imageView3.setImageResource (R. drawable. tab_work_normal); imageView4.setImageResource (R. drawable. tab_attent_normal);}/*** when a click event occurs, use setCurrent ** @ param arg0 */@ Override public void onClick (View arg0) to redirect to the relevant page) {// TODO Auto-generated method stub setShow (); switch (arg0.getId () {case R. id. iv_message: viewPager. setCurrentItem (0); imageView. setImageResource (R. drawable. tab_mes_pressed); break; case R. id. iv_ding: viewPager. setCurrentItem (1); imageView2.setImageResource (R. drawable. tab_ding_pressed); break; case R. id. iv_work: viewPager. setCurrentItem (2); imageView3.setImageResource (R. drawable. tab_work_pressed); break; case R. id. iv_atten: viewPager. setCurrentItem (3); imageView4.setImageResource (R. drawable. tab_attent_pressed); break; default: break;} class MyAdapter extends FragmentPagerAdapter {List <Fragment> listFragments; public MyAdapter (FragmentManager fm, List <Fragment> list) {super (fm ); this. listFragments = list; // TODO Auto-generated constructor stub} @ Override public Fragment getItem (int arg0) {// TODO Auto-generated method stub return listFragments. get (arg0) ;}@ Override public int getCount () {// TODO Auto-generated method stub return listFragments. size ();}}}
The layout code is a ViewPager and the image below.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@drawable/botton_bg" android:orientation="horizontal" > <ImageView android:id="@+id/iv_message" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:contentDescription="@null" android:paddingTop="5dp" android:scaleType="fitCenter" android:src="@drawable/tab_mes_pressed" /> <ImageView android:id="@+id/iv_ding" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:contentDescription="@null" android:paddingTop="5dp" android:scaleType="fitCenter" android:src="@drawable/tab_ding_normal" /> <ImageView android:id="@+id/iv_work" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:contentDescription="@null" android:paddingTop="5dp" android:scaleType="fitCenter" android:src="@drawable/tab_work_normal" /> <ImageView android:id="@+id/iv_atten" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:contentDescription="@null" android:paddingTop="5dp" android:scaleType="fitCenter" android:src="@drawable/tab_attent_normal" /> </LinearLayout></LinearLayout>
There are four more fragment, which I have not implemented yet
package com.ithello.dingding.fragment;import com.ithello.dingding.R;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class OneFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.onefragment, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); System.out.println("1"); } }