网友通过本文主要向大家介绍了fragmentviewpager,viewpager加fragment,fragment中viewpager,scrollview viewpager,viewpager view等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
ViewPager和Fragment的组合使用,viewpagerfragment
如图是效果图用的是Viewpager和fragment来实现的主界面
不过其中的预加载我没有解决
如下是代码代码比较简单
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 android.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; /** * 主界面 * * @author zh * */ public class MhomeActivity extends FragmentActivity implements 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); setView(); 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.setOnClickListener(this); imageView3.setOnClickListener(this); imageView4.setOnClickListener(this); } private void setData() { // TODO Auto-generated method stub // /** // * ViewPager.setOffscreenPageLimit(int // * limit),其中参数可以设为0或者1,参数小于1时,会默认用1来作为参数 // * ,未设置之前,ViewPager会默认加载两个Fragment。所以,我们只需要调用下它,设置下加载Fragment个数即可。 // */ // 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 onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); } // 用于在下一次事件前重置控件属性 protected void setShow() { // TODO Auto-generated method stub imageView.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); } /** * 点击事件发生时,相关页面跳转 用setCurrent * * @param arg0 */ @Override public void onClick(View arg0) { // 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.listF