您的位置:首页 > 其它

使用ActionBar实现Tab导航

2015-12-22 10:54 435 查看
重点内容

为了使用ActionBar实现Tab的导航,按照如下的方法步骤。

1.调用ActionBar的setnavigationMode();方式设置使用Tab的导航模式。

2.调用ActionBar的addTab()方法添加多个Tab标签,并为每个Tab标签添加事件的监听器

“`

package com.example.actionbar_fragment;

import android.os.Bundle;

import android.app.ActionBar;

import android.app.ActionBar.Tab;

import android.app.Activity;

import android.app.Fragment;

import android.app.FragmentTransaction;

import android.view.Menu;

public class MainActivity extends Activity implements ActionBar.TabListener {

private static final String SELECTED_ITEM = "selected_item";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.addTab(actionbar.newTab().setText("第一页").setTabListener(this));
actionbar.addTab(actionbar.newTab().setText("第二页").setTabListener(this));
actionbar.addTab(actionbar.newTab().setText("第三页").setTabListener(this));
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub

}


//重要的就是重写这个方法

@Override

public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) {

// TODO Auto-generated method stub

Fragment fragmrnt = new DummyFragmrnt();

Bundle bd = new Bundle();

bd.putInt(DummyFragmrnt.ARG_SECTION_NUMBER, tab.getPosition()+1);

//FragmentTransaction 对fragment进行移动,添加,替换的操作

fragmrnt.setArguments(bd);

FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.replace(R.id.container, fragmrnt);

ft.commit();

}

@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub

}


}

“`//简单的Fragment

public class DummyFragmrnt extends Fragment{

public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textview = new TextView(getActivity());
textview.setGravity(Gravity.START);
Bundle args = getArguments();
textview.setText(args.getInt(ARG_SECTION_NUMBER)+"");
textview.setTextSize(30);

return textview;
}


}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: