您的位置:首页 > 移动开发 > Android开发

android的ViewPager+FragmentPagerAdapter实现

2016-02-26 11:04 295 查看
package com.example.administrator.myresumex;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentActivity;

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.widget.ImageButton;

import android.widget.LinearLayout;

public class MainActivity extends FragmentActivity implements View.OnClickListener {

private ViewPager mViewPager;

private FragmentPagerAdapter mAdapter;

private List<Fragment> mFragments = new ArrayList<Fragment>();

/**

* 底部四个按钮

*/

private LinearLayout mTabBtnWeixin;

private LinearLayout mTabBtnFrd;

private LinearLayout mTabBtnAddress;

private LinearLayout mTabBtnSettings;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mViewPager = (ViewPager) findViewById(R.id.id_viewpager);

initView();

mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public int getCount() {

return mFragments.size();

}

@Override

public Fragment getItem(int arg0) {

return mFragments.get(arg0);

}

};

mViewPager.setAdapter(mAdapter);

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

private int currentIndex;

@Override

public void onPageSelected(int position) {

resetTabBtn();

switch (position) {

case 0:

((ImageButton) mTabBtnWeixin.findViewById(R.id.btn_tab_bottom_weixin))

.setImageResource(R.drawable.renlu);

break;

case 1:

((ImageButton) mTabBtnFrd.findViewById(R.id.btn_tab_bottom_friend))

.setImageResource(R.drawable.zouping);

break;

case 2:

((ImageButton) mTabBtnAddress.findViewById(R.id.btn_tab_bottom_contact))

.setImageResource(R.drawable.jianli);

break;

case 3:

((ImageButton) mTabBtnSettings.findViewById(R.id.btn_tab_bottom_setting))

.setImageResource(R.drawable.houjiang);

break;

}

currentIndex = position;

//mViewPager.setCurrentItem(currentIndex);

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

});

}

protected void resetTabBtn() {

((ImageButton) mTabBtnWeixin.findViewById(R.id.btn_tab_bottom_weixin))

.setImageResource(R.drawable.ren);

((ImageButton) mTabBtnFrd.findViewById(R.id.btn_tab_bottom_friend))

.setImageResource(R.drawable.zou);

((ImageButton) mTabBtnAddress.findViewById(R.id.btn_tab_bottom_contact))

.setImageResource(R.drawable.jian);

((ImageButton) mTabBtnSettings.findViewById(R.id.btn_tab_bottom_setting))

.setImageResource(R.drawable.hou);

}

private void initView() {

mTabBtnWeixin = (LinearLayout) findViewById(R.id.id_tab_bottom_weixin);

mTabBtnFrd = (LinearLayout) findViewById(R.id.id_tab_bottom_friend);

mTabBtnAddress = (LinearLayout) findViewById(R.id.id_tab_bottom_contact);

mTabBtnSettings = (LinearLayout) findViewById(R.id.id_tab_bottom_setting);

mTabBtnWeixin.setOnClickListener(this);

mTabBtnFrd.setOnClickListener(this);

mTabBtnAddress.setOnClickListener(this);

mTabBtnSettings.setOnClickListener(this);

tab1 tab01 = new tab1();

tab2 tab02 = new tab2();

tab3 tab03 = new tab3();

tab4 tab04 = new tab4();

mFragments.add(tab01);

mFragments.add(tab02);

mFragments.add(tab03);

mFragments.add(tab04);

}

public void onClick(View view) {//点击底部按钮对ViewPager进行切换

int currentIndex = 0;

switch (view.getId()) {//只需要选择被选中页,底部按钮会自动在onPageSelected中更新

case R.id.id_tab_bottom_weixin:

currentIndex = 0;

break;

case R.id.id_tab_bottom_friend:

currentIndex = 1;

break;

case R.id.id_tab_bottom_contact:

currentIndex = 2;

break;

case R.id.id_tab_bottom_setting:

currentIndex = 3;

break;

}

mViewPager.setCurrentItem(currentIndex);//点击后切换当前选中page,或者说是fragment

}

}

添加实现了按钮功能

本文转载http://blog.csdn.net/lmj623565791/article/details/24740977
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: