Android Fragment 学习<2> 滑动TAb导航(ActionBar)

最近总结,“滑动导航”这个功能很常见。


结合ActionBar和ViewPage的使用,简单记录如下;


思路:  定义一个字符串,来表示TAB的标签,并做监听其改变,同时“绑定”相应的Fragment。布局滑动,我使用的是ViewPage,绑定监听后,滑动改变ActionBar的高亮显示



两个Fragment类就省了,没什么东西。主Activity的布局里面只有一个ViewPage控件。


public class MainActivity extends FragmentActivity {


private ActionBar actionBar;

private ViewPager vp;

private ArrayList<Fragment> fragmentList;

private String[] addresses = { "first", "second" };      /* Tab标签 */

private Tab[] mTab = new Tab[addresses.length];

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.main_layout);

vp = (ViewPager) findViewById(R.id.viewPager);

vp.setOnPageChangeListener(new MyOnPageChangeListener());

fragmentList = new ArrayList<Fragment>(); /* 装载Fragment */

fragmentList.add(new FragmentOne());

fragmentList.add(new FragmentTwo());

/*  创建Fragment适配器 */

MyFragmentAdapter mfa = new MyFragmentAdapter(getSupportFragmentManager(), fragmentList);


vp.setAdapter(mfa);

actionBar = getActionBar();

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

actionBar.setDisplayShowTitleEnabled(false);

actionBar.setDisplayShowHomeEnabled(false);

/* 初始化TAB */

for(int i = 0;i < addresses.length;i++){

mTab[i] = actionBar.newTab().setText(addresses[i]).setTabListener(new MyTabListener());

actionBar.addTab(mTab[i]);

}

}


private class MyTabListener implements TabListener{

/**  TAB在切换的时候 ,并带动下面的Fragment  **/

@Override

public void onTabSelected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub

if(tab == mTab[0]){

vp.setCurrentItem(0);

}

else if(tab == mTab[1]){

vp.setCurrentItem(1);

}

}


@Override

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub

}


@Override

public void onTabReselected(Tab tab, FragmentTransaction ft) {

// TODO Auto-generated method stub

}

}

private class MyOnPageChangeListener implements OnPageChangeListener{

/** Fragment 在滑动的时候,带动TAb标签 **/

@Override

public void onPageScrollStateChanged(int arg0) {

// TODO Auto-generated method stub

}


@Override

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

// TODO Auto-generated method stub

}


@Override

public void onPageSelected(int arg0) {

actionBar.setSelectedNavigationItem(arg0);

}

}

}











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值