Android中ActionBar+fragment实现页面导航的实例
Android 中ActionBar+fragment实现页面导航的实例
创新互联建站-专业网站定制、快速模板网站建设、高性价比昌图网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式昌图网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖昌图地区。费用合理售后完善,10余年实体公司更值得信赖。
为保证android2.0以上均能运行,使用support.v7库下的actionbar及fragment
继承自AppCompatActivity(ActionBarActivity已过时)使用getSupportActionBar()得到ActionBar,
ActionBar.Tab,这里Tab必须设置监听,在监听中实现Fragment的切换。
这里重点提一下,Theme主题一定要适配,因为我使用的是AppCompatActivity所以,
android:theme="@style/Theme.AppCompat.Light"
如果不用AppCompatActivity一定要注意使用相应的主题适配,否则会getActionBar/getSupportActionbar的时候拿不到东西,空指针报错
package com.example.yasin.actionbarusing;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
public class MainActivity extends AppCompatActivity {
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = actionBar.newTab().setText("Tab1");
tab1.setTabListener(new MyTabListener(new Fragment1()));
ActionBar.Tab tab2 = actionBar.newTab().setText("Tab2");
tab2.setTabListener(new MyTabListener(new Fragment2()));
actionBar.addTab(tab1);
actionBar.addTab(tab2);
}
class MyTabListener implements ActionBar.TabListener{
private Fragment fragment;
public MyTabListener (Fragment fragment){
this.fragment=fragment;
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
ft.replace(R.id.context,fragment);
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
//ft.remove(fragment);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
package com.example.yasin.actionbarusing;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by Yasin on 2016/1/3.
*/
public class Fragment1 extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1,container,false);
return view;
}
}
<?xml version="1.0" encoding="utf-8"?>
效果图:

如有疑问请留言或者到本站社区交流讨论,大家共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
新闻名称:Android中ActionBar+fragment实现页面导航的实例
本文路径:http://www.jxjierui.cn/article/gjjejs.html


咨询
建站咨询
