Android毕设之Fragment+TabHost(三)

Android底部导航栏—FragmentTabHost+Fragment 介绍 Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下: - TabWidget - 隐藏TabWidget,使用RadioGroup和RadioButton - FragmentTabHost - 5.0以后的TabLayout - 最近推出的 Bottom navigation案例1:简单使用简单使用 FragmentTabHost 1 阅读详情

Fragment + TabHost + RadioGroup 结合使用 , 实现底菜单的效果!

1. 使用FragMent是因为 4.0.3之后 ,摒弃了TabActivity这种用法,

Demo 效果图:


先上布局XML R.layout.activity_main

<?xml version="1.0" encoding="utf-8"?>
<TabHost 
    xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
    	android:orientation="vertical"
    	android:layout_width="fill_parent"
    	android:layout_height="fill_parent">

    	<TabWidget 
    		android:id="@android:id/tabs"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content"
    		android:layout_weight="0.0"
    		android:visibility="gone"/>
    	
    	    <include android:id="@+id/header"
			    layout="@layout/my_header"
			    android:layout_height="wrap_content"
			    android:layout_width="fill_parent"/>
			    	
    	<FrameLayout 
    		android:id="@android:id/tabcontent"
    		android:layout_width="fill_parent"
    		android:layout_height="0.0dip"
    		android:layout_weight="1.0">
    
    	    <fragment 
    	        android:name="com.example.coolsmile.fragment.HomeFragment"
    	        android:id="@+id/HomeFragment"
    	        android:layout_width="match_parent"
    	        android:layout_height="match_parent"
    	        />
    	    <fragment 
    	        android:name="com.example.coolsmile.fragment.fragment_tab2"
    	        android:id="@+id/fragment_tab2"
    	        android:layout_width="match_parent"
    	        android:layout_height="match_parent"
    	        />
    	    <fragment 
    	        android:id="@+id/fragment_tab3"
    	        android:name="com.example.coolsmile.fragment.fragment_tab3"
    	        android:layout_width="match_parent"
    	        android:layout_height="match_parent"
    	        />
    	    <fragment 
    	        android:id="@+id/fragment_tab4"
    	        android:name="com.example.coolsmile.fragment.fragment_tab4"
    	        android:layout_width="match_parent"
    	        android:layout_height="match_parent"
    	        />
    	    <fragment 
    	        android:id="@+id/fragment_tab5"
    	        android:name="com.example.coolsmile.fragment.fragment_tab5"
    	        android:layout_width="match_parent"
    	        android:layout_height="match_parent"
    	        />
    	</FrameLayout>
    		 
	    	<RadioGroup
	    		android:id="@+id/main_tab"
	    		android:background="@drawable/bottom1"
	    		android:orientation="horizontal"
	    		android:layout_width="fill_parent"
	    		android:layout_height="wrap_content"
	    		android:gravity="center_vertical"
	    		android:layout_gravity="bottom">
	
	    		<RadioButton
	    		    android:id="@+id/main_tab_home"  
                    style="@style/MMTabButton"  
                    android:layout_weight="1.0"      
                    android:drawableTop="@drawable/menu_icon_0_normal"  
                    android:text="@string/main_home"/>
	    		<RadioButton
	    		    android:id="@+id/main_tab_info"
	    		    style="@style/MMTabButton"
	    		    android:layout_weight="1.0"
	    		    android:drawableTop="@drawable/menu_icon_1_normal"
	    		    android:text="@string/main_my_info" />
	    		<RadioButton
	    		    android:id="@+id/main_tab_news"
	    		    style="@style/MMTabButton"
	    		    android:layout_weight="1.0"
	    		    android:drawableTop="@drawable/menu_icon_2_normal"
	    		    android:text="@string/main_news" />
	    		<RadioButton 
	    			android:id="@+id/main_tab_search"  
                    style="@style/MMTabButton"  
                    android:layout_weight="1.0"  
                    android:drawableTop="@drawable/menu_icon_3_normal"  
                    android:text="@string/main_search"/>
	    		<RadioButton
	    		    android:id="@+id/main_tab_settings"
	    		    style="@style/MMTabButton"
	    		    android:layout_weight="1.0"
	    		    android:drawableTop="@drawable/menu_icon_3_normal"
	    		    android:focusable="false"
	    		    android:text="@string/main_settings" />

	    	</RadioGroup>
	    			

	    	<TextView
	    	    android:id="@+id/main_tab_new_message"
	    	    android:layout_width="wrap_content"
	    	    android:layout_height="wrap_content"
	    	    android:layout_gravity="center_horizontal|top"
	    	    android:layout_marginLeft="15dip"
	    	    android:layout_marginTop="-46dip"
	    	    android:background="@drawable/tips"
	    	    android:gravity="center"
	    	    android:textColor="#ffffff"
	    	    android:textSize="10sp"
	    	    android:visibility="visible" />
  
    </LinearLayout>
</TabHost>

这里有个Fragment标签

android:name="com.example.coolsmile.fragment.HomeFragment"

这里的android:name="具体的Fragment的实现类"


这里我的Acitivty继承了FargmentActivity,onCreate方法里

setContentView(R.layout.activity_main);
InitUI(); 

private void InitUI(){

// get Resource R.string
InitUIString();
// set Message Number
TextView main_tab_new_message=(TextView) findViewById(R.id.main_tab_new_message);
main_tab_new_message.setVisibility(View.VISIBLE);
main_tab_new_message.setText("6");


tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();

tabHost.addTab(
tabHost.newTabSpec(main_home).setIndicator(main_home).setContent(R.id.HomeFragment)
);
tabHost.addTab(
tabHost.newTabSpec(main_my_info).setIndicator(main_my_info).setContent(R.id.fragment_tab2)
);
tabHost.addTab(
tabHost.newTabSpec(main_news).setIndicator(main_news).setContent(R.id.fragment_tab3)
);
tabHost.addTab(
tabHost.newTabSpec(main_search).setIndicator(main_search).setContent(R.id.fragment_tab4)
);
tabHost.addTab(
tabHost.newTabSpec(main_settings).setIndicator(main_settings).setContent(R.id.fragment_tab5)
);

tabHost.setCurrentTab(0);

InitClickListener();
}

private void InitClickListener(){

RadioGroup radioGroup=(RadioGroup) this.findViewById(R.id.main_tab);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
switch (checkedId) {
case R.id.main_tab_home:
tabHost.setCurrentTabByTag(main_home);
break;
case R.id.main_tab_info:
tabHost.setCurrentTabByTag(main_my_info);
break;
case R.id.main_tab_news:
tabHost.setCurrentTabByTag(main_news);
break;
case R.id.main_tab_search:
tabHost.setCurrentTabByTag(main_search);
break;
case R.id.main_tab_settings:
tabHost.setCurrentTabByTag(main_settings);
break;
default:
tabHost.setCurrentTabByTag(main_home);
}
}
});
}
@Override
public void onClick(View v) {


}
public MainHeader getHeader(){
return this.header;
}
private void InitUIString(){

main_home = getResources().getString(R.string.main_home);
main_my_info = getResources().getString(R.string.main_my_info);
main_news = getResources().getString(R.string.main_news);
main_search = getResources().getString(R.string.main_search);
main_settings = getResources().getString(R.string.main_settings);
}

这里实例了一个效果图的HomeFragMent

public class HomeFragment extends Fragment{

	View view;
 
	String[] presidents = { 
		        "Dwight D. Eisenhower", 
		        "John F. Kennedy", 
		        "Lyndon B. Johnson", 
		        "Richard Nixon", 
		        "Gerald Ford", 
		        "Jimmy Carter", 
		        "Ronald Reagan", 
		        "George H. W. Bush", 
		        "Bill Clinton", 
		        "George W. Bush", 
		        "Barack Obama" 
		    }; 
	 
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
				// TODO Auto-generated method stub
				view = inflater.inflate(R.layout.fragment_tab1,container,false);
				Init();
				return view ;
	}
	
	protected void Init(){
				
		ListView list = (ListView)view.findViewById(android.R.id.list);
		
		list.setAdapter(new ArrayAdapter<String>(getActivity(), 
	            android.R.layout.simple_list_item_1, presidents));
		list.setOnItemClickListener(listener);
	}
	
	private OnItemClickListener listener = new OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,
				long id) {
			// TODO Auto-generated method stub
			Intent intent = new Intent(getActivity(), ListContainActivity.class);
         	
         	intent.putExtra("PRESIDENTS_CONTENT",presidents[position]);

         	getActivity().startActivity(intent);    
		}	
	};
	
}


点击: 下载DEMO







【AI方案集】多模态AI实时翻译与沟通智能体设计.docx 这套AI技术方案不走“先堆概念再硬套场景”的老路,而是以业务痛点为锚点,把机器视觉识别、预测性分析、大模型知识赋能等能力拆解成轻量化可落地的功能模块,直接嵌入生产运营的关键环节,既能快速落地见效,又能通过持续的数据迭代逐步放大价值,帮企业在不盲目新增硬件投入的前提下,稳步完成智能化升级,实实在在把AI变成能降本、提效、控风险的生产工具。 立即下载

相关推荐

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文针对三电平维也纳(VIENNA)整流器在中大功率应用中面临的直流侧中点电位不平衡问题,提出一种基于电容电压差值补偿的主动均衡控制策略。研究以电压电流双闭环PI控制为基础,在电压外环中引入上下电容电压差值作为反馈信号,结合空间矢量脉宽调制(SVPWM)技术,利用冗余小矢量的时间分配自由度实现对中点电位的闭环调节。通过MATLAB/Simulink搭建仿真模型,在800 V直流母线电压、20 kHz开关频率、10 kW负载功率等工况下进行验证。结果表明,该方法不仅能够有效稳定直流母线电压,还可显著抑制中点电位偏差,使其维持在极小范围内,均衡效果远优于未投入补偿的情况,同时保持较低的输入电流总谐波畸变率(THD)。该方案实现了“电压稳定—电流低谐波—中点均衡”三者的协同优化,无需增加额外硬件,具有良好的实用性与工程推广价值。; 适合人群:具备电力电子与电力传动基础知识,从事新能源发电、电动汽车充电、工业电源等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:①掌握三电平VIENNA整流器的工作原理与中点电位波动的成因;②学习双闭环PI控制的设计与参数整定方法;③理解并应用基于SVPWM冗余矢量的中点电位主动平衡策略;④开展类似拓扑的仿真建模与控制算法研究。; 阅读建议:此文理论推导与仿真验证结合紧密,建议读者在理解控制原理的基础上,动手复现Simulink仿真模型,重点关注SVPWM模块中冗余矢量时间分配的实现细节,并尝试调整系统参数以观察控制效果的变化,从而深化对中点平衡能力边界的认识。

Android的FragmentTabHost使用(顶部或底部菜单栏)

首先给大家拜个年,祝大伙新年快乐!万事如意! 第一种:通过FragmentTabHost+Fragment来实现其点击顶部实现切换页面的效果!** 第一步:编写布局文件<android.support.v4.app.FragmentTabHost android:layout_width="match_parent" android:layout_height="match_pa

willba的博客 6731

产业园区运营负责人如何精准识别企业技术需求?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Fragment进阶2——使用FragmentTabhost代替Tabhost

Fragment是Android 3.0 引入的新API,他使开发的效率更加高效,因为Tabhost已经不推荐使用了,现在android推荐使用FragmentTabhost,下面简单给个例子,相当于一个抛砖引玉的作用吧 系统大致结构: 一共四个选项卡,点击不同的选项卡切换到不同的fragment,在第一个fragment界面,我用ViewPager实现了一个图片轮播的功能,在第二个f

持之以恒! 5172

木材表面缺陷木板裂缝节疤虫眼检测数据集VOC+YOLO格式612张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

【微服务架构】基于Nginx与MySQL的Nacos集群部署方案:多节点高可用配置与负载均衡实施指南

内容概要:本文详细介绍了Nacos集群的部署过程,包括环境准备、文件解压与复制、数据库配置、SQL脚本导入、集群节点配置以及Nginx负载均衡设置。通过搭建三个Nacos实例(nacos01、nacos02、nacos03),实现高可用架构,并利用MySQL存储配置数据,确保数据一致性与持久化。同时,通过Nginx反向代理实现对外统一入口访问,提升系统稳定性与可维护性。文中还说明了各关键配置文件的修改方法,如application.properties和cluster.conf,并指导如何启动集群及验证服务状态。; 适合人群:具备一定Java和Linux运维基础,熟悉微服务架构,从事中间件部署或DevOps工作的技术人员;尤其适合工作1-3年、参与微服务配置中心建设的研发与运维人员。; 使用场景及目标:①搭建高可用的Nacos配置中心与注册中心集群;②掌握Nacos多节点协同工作机制及与MySQL集成方法;③通过Nginx实现负载均衡,提升服务可用性和访问效率;④为Spring Cloud等微服务体系提供稳定的配置管理支持。; 阅读建议:此文档侧重实际操作步骤,建议在测试环境中同步操作,逐项验证每一步配置的正确性,特别是数据库连接、集群通信端口和Nginx转发规则,避免因配置遗漏导致集群无法正常选举或服务不可用。

主流移动应用开发框架(2)——fragment+fragmenttabhost实现底部选项卡导航(可滑动切换)

Fragment对于我们来说可能并不陌生,在android3.0之后引进开发,对于处理平板大屏幕界面分布,fragment有着activity没有的优势,它“寄生”于activity解决了一个屏幕显示多个“分屏”的问题,管理同一个activity下多个“碎片”界面的布局显示及其数据交互。在3.0版本以下的开发环境,则需要导入V4到作为支持。 fragment的具体使用方法在这里并没有详细介绍,而

「Android之禅」公众号博主,和你分享有价值有思考的技术文章 6495

NXP(imx8qxp)系列DDR校准以及android镜像烧录

文章目录一、 不得不吐槽以下nxp的这个代码镜像烧写的过程,做得太开源了,导致镜像根本烧录不进去,实属令人头痛。 一、

永不秃头的程序员的博客 5991

TabHost+ViewPager+Fragment实现页面的滑动

大家都知道TabHost是标签窗口控件需要放在layout的最外层,内部控件需要FrameLayout和widget标签栏,点击不同的标签,显示不同的标签页。TabHost有个好处就是标签页不仅可以放fragment,还可以放activity。当然这次的文章讲述是通过fragment来完成的。 如果我们在做项目中,在加入ViewPager这个控件实现标签栏和ViewPager的联动,就可以实现类...

qq_38952132的博客 520

MS建模mmt

一、流程:1.定义好每个原子力场类型:Edit Sets(分组) 2.加H(一般是仅与Al-O八面体中的Al相连的O原子)、给H分组 3.“make P1”、校核化学式(正确与否) 4.扩成超晶胞(Na-mmt:4*1*1,Ca-mmt:4*2*1,illite:2*1*1,由化学式而定) 5.置换阳离子: mmt:模型中每 32 个 Si 4+有 1 个被 Al 3+ 取...

weixin_30721899的博客 2174

用VSCode远程开发Jetson小车:告别Jupyter,在本地IDE高效调试Rosmaster Python程序

本文详细介绍了如何利用VSCode的Remote-SSH扩展在本地IDE中高效开发Jetson小车的Rosmaster Python程序。通过配置远程开发环境、调试技巧和项目管理方法,开发者可以告别Jupyter Notebook的碎片化编码,实现完整的机器人控制程序开发,显著提升工作效率。

weixin_30652491的博客 477

Android Fragment应用实战,使用碎片向ActivityGroup说再见

现在Fragment的应用真的是越来越广泛了,之前Android的3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧。 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的界面,如以下几个应用所示: 上面三个应用从左到右分别是QQ、新浪微博和支付宝钱宝,可见,这种底部标签式的布局策略真的非

郭霖的专栏 14万+

地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南

本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。

weixin_29046035的博客 456

使用FragmentTabHost实现底部导航栏

前言:本文记录实现毕设过程中所学习的功能,以新手的视角学习其他优秀博客的内容并进行整理,并尽可能地对其中的内容进行详细的解释。 一、效果图 二、大致项目结构 三、activity_main.xml代码 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.app.FragmentT...

ZJIALE的博客 507

一个中科大差生的8年程序员工作总结

今年终于从大菊花厂离职了,离职前收入大概60w不到吧,在某乎属于比较差的,今天终于有空写一下自己的职场故事,也算是给自己近8年的程序员工作做个总结复盘。近8年有些事情做对了,也有更多事情做错了,在这里记录一下,希望能够给后人一些帮助吧,也欢迎私信交流。文笔不好,见谅,有些细节记不清了,如果有出入,就当是我编的这个故事吧。 PS:有几个问题先在这里解释一下,评论就不一一回复了 1、关于差生,我本人在科大时确实成绩偏下,差生主要讲这一点,没其他意思。 2、因为买房是我人生中的大事,我认为需要记录和总结一下

陈小房的自我修炼 5万+

2025MCM美赛 数学建模 问题 C:奥运奖牌榜模型 思路+matlab代码+python代码

目录问题一详细思路步骤1. 数据准备与预处理2. 特征选择与构建3. 模型选择4. 模型训练与评估5. 预测与不确定性分析6. 分析与结果解释步骤详细代码实现python代码代码解析matlab代码问题二详细思路解决方案步骤1. 构建生产模型:2. 优化决策:3. 代码实现:代码解析matlab代码问题三的详细思路解决思路:代码实现1. 数据准备2. 代码实现matlab代码在这个问题中,我们的目标是根据历史奥运会的数据,建立一个模型来预测2028年洛杉矶奥运会各国的奖牌数。具体要求是:首先,整理并加载奥运

斌擎科技 2144

fragment + tabhost使用

总结下几种常见的搭建主页面方式,有普通导航栏,中间凸出导航栏 1.fragment + tabhost activity_main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http

Peterpan1223的博客 375

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

python-ipopt是一种基于Python语言的求解非线性最优化问题的软件包。它使用了Interior Point Optimizer(IPOPT)算法来求解最优化问题。这段代码使用python-ipopt求解了一个无约束的非线性最小化问题,其目标函数为(x[0] - 1) ** 2 + (x[1] - 2) ** 2,求解结果为x_opt。求解线性规划问题、二次规划问题、二次范数最小化问题等类型的最优化问题。对于给定的最优化问题,可以设置不同的求解参数来控制求解的精度和效率。

源代码杀手的博客 2146

FragmentTabHost 用法

一、FragmentTabHost结构如下图: FragmentTabHost 包含两个内容:TabWidget和FrameLayout。 标准的FragmentTabHost是TabWidget在上面,FrameLayout在下面。 如果想要制作TabWidget在下面的效果,可以在布局文件中手动添加一个FrameLayout,并将FragmentTabHost 中的FrameLayout...

solocoder的博客 4633

基于卷积神经网络的遥感图像地物分类

AI:89-基于卷积神经网络的遥感图像地物分类 基于卷积神经网络的遥感图像地物分类是一个令人兴奋的领域,它在环境监测、城市规划、农业、国防等领域具有广泛的应用。深度学习技术为我们提供了更准确、高效的工具,有望在未来进一步提高分类性能。在本文中,我们探讨了卷积神经网络的工作原理、数据准备、模型构建、训练和评估过程,并提供了多个代码示例。此外,我们讨论了地物分类的应用和挑战,以及未来的发展趋势。

一键难忘的博客 2717

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Fragment+FragmentTabHost

关于Fragment类在之前的安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)也介绍过,这里就不再重复阐述了。 国际惯例,先来张效果图:   下面直接上代码了,注释很全,看过我前2篇文章的朋友,肯定秒懂的,哈哈~   activity_main.xml(主布局文件) 1 LinearLayout xmlns:andr

航天飞哥的博客 1165

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

FragmentTabHost的使用

FragmentTabHost的使用

lunious的博客 458

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

FragmentTabHost底部切换

private void initFragmentTabHost() { //枚举方式创建 mFragmentTabHost.setup(this, getSupportFragmentManager(), R.id.fl); //去掉分割线 if (Build.VERSION.SDK_INT > 10) {

nihaozhanghua的博客 343

底部菜单栏(一)Fragment+FragmentTabHost 来实现底部菜单栏方式

这是一种实现底部导航栏的方法(方便简洁),也可以自定义布局,进行click;因此Fragment在一段时间内被疯狂的使用~源代码下载点:http://download.youkuaiyun.com/detail/cl18652469346/9608292 效果图在末尾·········(1)修改主布局代码,加入了FragmentTabHost 组件<?xml version="1.0" encoding="u

CL 2577

Fragment+FragmentTabHost实现底部菜单栏

转载请注明出处:http://blog.youkuaiyun.com/yangyu20121224/article/details/9016223   一、实现效果图 二、项目工程结构   三、详细代码编写   1、主tab布局界面,main_tab_layout: [html] view plain copy pri

Rorschach 451
上一篇: android 毕设点滴之显示进度条(二)
下一篇: Android小技巧/EditText 修改光标颜色
多格AI零代码
博客等级 码龄15年 40粉丝 73原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值