Android 中ActionBar+fragment实现页面导航的实例
发布时间 - 2026-01-11 03:14:22 点击率:次Android 中ActionBar+fragment实现页面导航的实例

为保证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的时候拿不到东西,空指针报错
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<FrameLayout
android:id="@+id/context"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
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"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv1"
android:text="fragment1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
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"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yasin.actionbarusing" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
效果图:
如有疑问请留言或者到本站社区交流讨论,大家共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 中ActionBar+fragment的应用
# 页面导航的实现
# Android中Activity和Fragment传递数据的两种方式
# Android中Fragment相互切换间不被回收的实现方法
# Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
# Android使用TabLayout+Fragment实现顶部选项卡
# Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
# android 中viewpager+fragment仿微信底部TAG完美渐变
# 的是
# 如有
# 希望能
# 报错
# 谢谢大家
# 则会
# 均能
# 共同进步
# 疑问请
# 因为我
# 为保证
# context
# id
# paddingBottom
# FrameLayout
# gt
# MainActivity
# paddingLeft
# dimen
# match_parent
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
浅述节点的创建及常见功能的实现
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何快速启动建站代理加盟业务?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
网站制作免费,什么网站能看正片电影?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
怎样使用JSON进行数据交换_它有什么限制
如何在腾讯云服务器上快速搭建个人网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何在万网利用已有域名快速建站?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
EditPlus中的正则表达式实战(5)
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在云服务器上快速搭建个人网站?
如何在阿里云域名上完成建站全流程?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
手机网站制作与建设方案,手机网站如何建设?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Laravel PHP版本要求一览_Laravel各版本环境要求对照
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
实例解析Array和String方法
Python自动化办公教程_ExcelWordPDF批量处理案例
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
JavaScript如何实现继承_有哪些常用方法
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
高端智能建站公司优选:品牌定制与SEO优化一站式服务
微信小程序 wx.uploadFile无法上传解决办法
如何用景安虚拟主机手机版绑定域名建站?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何实现一对一模型关联?(Eloquent示例)
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?

