ViewPager and Fragment combination, viewpagerfragment

Source: Internet
Author: User

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");    }    }

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.