zoukankan      html  css  js  c++  java
  • 68、 FragmentPagerAdapter+ViewPager实现Tab

    <LinearLayout 
    ***
        <android.support.v4.view.ViewPager
            android:id="@+id/id_viewpager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />
        <include layout="@layout/bottom" />
    </LinearLayout>
      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     
     20     private ViewPager mViewPager;
     21     private FragmentPagerAdapter mAdapter;
     22     private List<Fragment> mFragments;
     23 
     24     private LinearLayout mTabWeixin;
     25     private LinearLayout mTabFrd;
     26     private LinearLayout mTabAddress;
     27     private LinearLayout mTabSettings;
     28 
     29     private ImageButton mImgWeixin;
     30     private ImageButton mImgFrd;
     31     private ImageButton mImgAddress;
     32     private ImageButton mImgSettings;
     33 
     34     @Override
     35     protected void onCreate(Bundle savedInstanceState) {
     36         super.onCreate(savedInstanceState);
     37         requestWindowFeature(Window.FEATURE_NO_TITLE);
     38         setContentView(R.layout.activity_main);
     39 
     40         initView();
     41         initEvent();
     42 
     43         setSelect(1);
     44     }
     45 
     46     private void initEvent() {
     47         mTabWeixin.setOnClickListener(this);
     48         mTabFrd.setOnClickListener(this);
     49         mTabAddress.setOnClickListener(this);
     50         mTabSettings.setOnClickListener(this);
     51     }
     52 
     53     private void initView() {
     54         mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
     55 
     56         mTabWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin);
     57         mTabFrd = (LinearLayout) findViewById(R.id.id_tab_frd);
     58         mTabAddress = (LinearLayout) findViewById(R.id.id_tab_address);
     59         mTabSettings = (LinearLayout) findViewById(R.id.id_tab_settings);
     60 
     61         mImgWeixin = (ImageButton) findViewById(R.id.id_tab_weixin_img);
     62         mImgFrd = (ImageButton) findViewById(R.id.id_tab_frd_img);
     63         mImgAddress = (ImageButton) findViewById(R.id.id_tab_address_img);
     64         mImgSettings = (ImageButton) findViewById(R.id.id_tab_settings_img);
     65 
     66         mFragments = new ArrayList<Fragment>();
     67         Fragment mTab01 = new WeixinFragment();
     68         Fragment mTab02 = new FrdFragment();
     69         Fragment mTab03 = new AddressFragment();
     70         Fragment mTab04 = new SettingFragment();
     71         mFragments.add(mTab01);
     72         mFragments.add(mTab02);
     73         mFragments.add(mTab03);
     74         mFragments.add(mTab04);
     75 
     76         mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
     78             @Override
     79             public int getCount() {
     80                 return mFragments.size();
     81             }
     83             @Override
     84             public Fragment getItem(int arg0) {
     85                 return mFragments.get(arg0);
     86             }
     87         };
     88         mViewPager.setAdapter(mAdapter);
     89 
     90         mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
     92             @Override
     93             public void onPageSelected(int arg0) {
     94                 int currentItem = mViewPager.getCurrentItem();
     95                 setTab(currentItem);
     96             }
     98             @Override
     99             public void onPageScrolled(int arg0, float arg1, int arg2) {
    100                 // TODO Auto-generated method stub
    101             }
    103             @Override
    104             public void onPageScrollStateChanged(int arg0) {
    105                 // TODO Auto-generated method stub
    106             }
    107         });
    108     }
    109 
    110     @Override
    111     public void onClick(View v) {
    112         switch (v.getId()) {
    113         case R.id.id_tab_weixin:
    114             setSelect(0);
    115             break;
    116         case R.id.id_tab_frd:
    117             setSelect(1);
    118             break;
    119         case R.id.id_tab_address:
    120             setSelect(2);
    121             break;
    122         case R.id.id_tab_settings:
    123             setSelect(3);
    124             break;
    125 
    126         default:
    127             break;
    128         }
    129     }
    130 
    131     private void setSelect(int i) {
    132         setTab(i);
    133         mViewPager.setCurrentItem(i);
    134     }
    135 
    136     private void setTab(int i) {
    137         resetImgs();   // 切换图片至暗色
    138         // 设置图片为亮色
    139         // 切换内容区域
    140         switch (i) {
    141         case 0:
    142             mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
    143             break;
    144         case 1:
    145             mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
    146             break;
    147         case 2:
    148             mImgAddress.setImageResource(R.drawable.tab_address_pressed);
    149             break;
    150         case 3:
    151             mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
    152             break;
    153         }
    154     }
    155 
    156     /**
    157      * 切换图片至暗色
    158      */
    159     private void resetImgs() {
    160         mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
    161         mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
    162         mImgAddress.setImageResource(R.drawable.tab_address_normal);
    163         mImgSettings.setImageResource(R.drawable.tab_settings_normal);
    164     }
    165 
    166 }

    DEMO:http://download.csdn.net/detail/androidsj/9354313

  • 相关阅读:
    用Python完成一个汇率转换器
    鸿蒙如何用JS开发智能手表App
    鸿蒙如何用JS开发智能手表App
    SAP Spartacus SplitViewComponent Migration 的一个具体例子
    SAP Spartacus B2B 页面 Popover Component 的条件显示逻辑
    SAP Spartacus 升级时关于 schematics 的更新
    SAP Spartacus B2B 页面 Disable 按钮的显示原理
    SAP Spartacus B2B 页面 Disable Confirmation 对话框的显示原理
    通过 Feature Level 动态控制 SAP Spartacus 的页面显示
    SAP Commerce Cloud Build Manifest Components
  • 原文地址:https://www.cnblogs.com/androidsj/p/5045424.html
Copyright © 2011-2022 走看看