zoukankan      html  css  js  c++  java
  • 【IMOOC学习笔记】多种多样的App主界面Tab实现方法(三)

    FragmentPagerAdapter+ViewPager

    与之前直接用ViewPager不同的是,数组里面放的不再是View,而是Fraagment;

    使用FragmentPagerAdapter

    xml文件没有变化,只有代码发生变化

      1 package com.imooc.tab03;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import android.os.Bundle;
      7 import android.support.v4.app.Fragment;
      8 import android.support.v4.app.FragmentActivity;
      9 import android.support.v4.app.FragmentPagerAdapter;
     10 import android.support.v4.view.ViewPager;
     11 import android.support.v4.view.ViewPager.OnPageChangeListener;
     12 import android.view.View;
     13 import android.view.View.OnClickListener;
     14 import android.view.Window;
     15 import android.widget.ImageButton;
     16 import android.widget.LinearLayout;
     17 
     18 public class MainActivity extends FragmentActivity implements OnClickListener {
     19     private ViewPager mViewPager;
     20     private FragmentPagerAdapter mAdapter;
     21     private List<Fragment> mFragments;
     22 
     23     private LinearLayout mTabWeixin;
     24     private LinearLayout mTabFrd;
     25     private LinearLayout mTabAddress;
     26     private LinearLayout mTabSettings;
     27 
     28     private ImageButton mImgWeixin;
     29     private ImageButton mImgFrd;
     30     private ImageButton mImgAddress;
     31     private ImageButton mImgSettings;
     32 
     33     @Override
     34     protected void onCreate(Bundle savedInstanceState) {
     35         super.onCreate(savedInstanceState);
     36         requestWindowFeature(Window.FEATURE_NO_TITLE);
     37         setContentView(R.layout.activity_main);
     38 
     39         initView();
     40         initEvent();
     41 
     42         setSelect(1);
     43     }
     44 
     45     private void initEvent() {
     46         mTabWeixin.setOnClickListener(this);
     47         mTabFrd.setOnClickListener(this);
     48         mTabAddress.setOnClickListener(this);
     49         mTabSettings.setOnClickListener(this);
     50     }
     51 
     52     private void initView() {
     53         mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
     54 
     55         mTabWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin);
     56         mTabFrd = (LinearLayout) findViewById(R.id.id_tab_frd);
     57         mTabAddress = (LinearLayout) findViewById(R.id.id_tab_address);
     58         mTabSettings = (LinearLayout) findViewById(R.id.id_tab_settings);
     59 
     60         mImgWeixin = (ImageButton) findViewById(R.id.id_tab_weixin_img);
     61         mImgFrd = (ImageButton) findViewById(R.id.id_tab_frd_img);
     62         mImgAddress = (ImageButton) findViewById(R.id.id_tab_address_img);
     63         mImgSettings = (ImageButton) findViewById(R.id.id_tab_settings_img);
     64 
     65         mFragments = new ArrayList<Fragment>();
     66         Fragment mTab01 = new WeixinFragment();
     67         Fragment mTab02 = new FrdFragment();
     68         Fragment mTab03 = new AddressFragment();
     69         Fragment mTab04 = new SettingFragment();
     70         mFragments.add(mTab01);
     71         mFragments.add(mTab02);
     72         mFragments.add(mTab03);
     73         mFragments.add(mTab04);
     74 
     75         mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
     76 
     77             @Override
     78             public int getCount() {
     79                 return mFragments.size();
     80             }
     81 
     82             @Override
     83             public Fragment getItem(int arg0) {
     84                 return mFragments.get(arg0);
     85             }
     86         };
     87         mViewPager.setAdapter(mAdapter);
     88 
     89         mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
     90 
     91             @Override
     92             public void onPageSelected(int arg0) {
     93                 int currentItem = mViewPager.getCurrentItem();
     94                 setTab(currentItem);
     95             }
     96 
     97             @Override
     98             public void onPageScrolled(int arg0, float arg1, int arg2) {
     99                 // TODO Auto-generated method stub
    100 
    101             }
    102 
    103             @Override
    104             public void onPageScrollStateChanged(int arg0) {
    105                 // TODO Auto-generated method stub
    106 
    107             }
    108         });
    109     }
    110 
    111     @Override
    112     public void onClick(View v) {
    113         switch (v.getId()) {
    114         case R.id.id_tab_weixin:
    115             setSelect(0);
    116             break;
    117         case R.id.id_tab_frd:
    118             setSelect(1);
    119             break;
    120         case R.id.id_tab_address:
    121             setSelect(2);
    122             break;
    123         case R.id.id_tab_settings:
    124             setSelect(3);
    125             break;
    126 
    127         default:
    128             break;
    129         }
    130     }
    131 
    132     private void setSelect(int i) {
    133         setTab(i);
    134         mViewPager.setCurrentItem(i);
    135     }
    136 
    137     private void setTab(int i) {
    138         resetImgs();
    139         switch (i) {
    140         case 0:
    141             mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
    142             break;
    143         case 1:
    144             mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
    145             break;
    146         case 2:
    147             mImgAddress.setImageResource(R.drawable.tab_address_pressed);
    148             break;
    149         case 3:
    150             mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
    151             break;
    152         }
    153     }
    154 
    155     private void resetImgs() {
    156         mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
    157         mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
    158         mImgAddress.setImageResource(R.drawable.tab_address_normal);
    159         mImgSettings.setImageResource(R.drawable.tab_settings_normal);
    160     }
    161 
    162 }
  • 相关阅读:
    POJ 3259 Wormholes【BellmanFord】
    POJ 2960 SNim【SG函数的应用】
    ZOJ 3578 Matrixdp水题
    HDU 2897 邂逅明下【bash博弈】
    BellmanFord 算法及其优化【转】
    【转】几个Java的网络爬虫
    thinkphp 反字符 去标签 自动加点 去换行 截取字符串 冰糖
    php 二维数组转 json文本 (jquery datagrid 数据格式) 冰糖
    PHP 汉字转拼音(首拼音,所有拼音) 冰糖
    设为首页与加入收藏 兼容firefox 冰糖
  • 原文地址:https://www.cnblogs.com/six-moon/p/4644603.html
Copyright © 2011-2022 走看看