Fragment小实例

Fragment的用法,举例介绍 Fragment(碎片) 1、碎片是什么 碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。虽然碎片对你来说应该是个全新的概念,但我相信你学习起来应该毫不费力,因为它和活动实在是太像了,同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的活动是一样大的。... 阅读详情

        一个Fragment的问题搞了好几天了,一直搞不明白是怎么回事,主要是想在低版本2.2上跑android3.0的效果,找了好几处例子,下载下来Demo就是打不到效果,不是这个出问题就是那个出问题,今天总算搞定了一个简单的小应用了,从别人那下载下来编译老出问题,最后还是修改成功了,不过还是没有达到自己想要的效果,先记载下来吧。main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:orientation = "vertical"
    android:layout_width = "fill_parent"
    android:layout_height = "fill_parent"
    >
    
    <LinearLayout 
    	android:orientation = "horizontal" 
    	android:padding = "4dip"
        android:gravity = "center_vertical" 
        android:layout_weight = "1"
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"
        >
        <Button 
        	android:id = "@+id/firstButton"
            android:layout_width = "wrap_content" 
            android:layout_height = "wrap_content"
            android:text = "Hide" 
            />
        <fragment 
        	android:name = "cn.fuli.damai.FirstFragment"
            android:id = "@+id/firstFragment" 
            android:layout_weight = "1"
            android:layout_width = "0px" 
            android:layout_height = "wrap_content" 
            />
    </LinearLayout>

    <LinearLayout 
    	android:orientation = "horizontal" 
    	android:padding = "4dip"
        android:gravity = "center_vertical" 
        android:layout_weight = "1"
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"
        >
        <Button 
        	android:id = "@+id/secondButton"
            android:layout_width = "wrap_content" 
            android:layout_height = "wrap_content"
            android:text = "Hide"
            />
        <fragment 
        	android:name = "cn.fuli.damai.SecondFragment"
            android:id = "@+id/secondFragment" 
            android:layout_weight = "1"
            android:layout_width = "0px" 
            android:layout_height = "wrap_content" 
            />
    </LinearLayout>
    
</LinearLayout>

再定义Fragment的时候用到的一句关键的语句
android:name = "cn.fuli.damai.SecondFragment"  
android:name = "cn.fuli.damai.FirstFragment"
这两句是加载了两个Fragment  FragmentTestActivity继承FragmentActivity,这个类中找到main.xml  对于Fragment提供的有FragmentManager对插入的Fragment进行管理。如果想进行一些增加、移除、替换的功能还需要使用getSupportFragmentManager().beginTransaction(),在进行上述相应操作的时候还可以加入动画的ft.setCustomAnimations,这里使用了系统提供的动画。等操作完这些之后需要ft.commit()进行提交方能生效


public class FragmentTestActivity extends FragmentActivity {
@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		FragmentManager fm = getSupportFragmentManager();
		addListener(R.id.firstButton, fm.findFragmentById(R.id.firstFragment));
		addListener(R.id.secondButton, fm.findFragmentById(R.id.secondFragment));
	}
	
	private void addListener(int buttonID, final Fragment fragment) {
         final Button button = (Button)findViewById(buttonID);
         button.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
                 ft.setCustomAnimations(android.R.anim.fade_in,
                         android.R.anim.fade_out);
                 if (fragment.isHidden()) {
                     ft.show(fragment);
                     button.setText("隐藏");
                 } else {
                     ft.hide(fragment);
                     button.setText("显示");
                 }
                 ft.commit();
             }
         });
    }
	

}

最后的就是有关Fragment的两个类了
public class FirstFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.first_fragment, container, false);
        TextView tv = (TextView)v.findViewById(R.id.msg);
        tv.setText("This is first fragment.");
        tv.setBackgroundColor(Color.GREEN);
        return v;
    }
}

public class SecondFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.second_fragment, container, false);
        TextView tv = (TextView)v.findViewById(R.id.msg);
        tv.setText("This is second fragment.");
        tv.setBackgroundColor(Color.RED);
        return v;
    }
}

两个Fragment类使用的到的.xml就是一些简单的定义了 first_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android = "http://schemas.android.com/apk/res/android"
	android:orientation = "vertical" 
	android:padding = "4dip"
    android:layout_width = "match_parent" 
    android:layout_height = "wrap_content"
    >
    <TextView 
    	android:id = "@+id/msg"
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"
        android:layout_weight = "0"
        android:paddingBottom = "4dip" 
        />
</LinearLayout>
second_fragment.xml
<?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/msg"
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"
        android:layout_weight = "0"
        android:paddingBottom = "4dip" 
        />
  	
</LinearLayout>

Demo下载地址


Android 面试题之 Fragment 使用+实例,致Android高级工程师的一封信 android.app.Fragment在API 级别 11 中 添加,已在API 级别 28 中弃用。 阅读详情

相关推荐

Android在Fragment中调用另一个Fragment

在Fragment中调用另一个Fragment 需求源于,想要在一个Fragment的内ListView中点击item,然后在相同的界面上覆盖显示对应item的内容(一个LinecChart) 最初想的是在一个PopUpwindow中加载LineChart,但是失败了,遂作罢,转向用Fragment加载。附效果图

VS2015 + Halcon18 - (一) MFC加载图片&打开相机 3064

Android-0.Fragment基础示例

Fragment基础示例

hgy413的专栏 1145

改善侧滑菜单Fragment切换速度(解决Fragment切换加载慢的问题)

1.现状: 在做项目的时候很多时候需要使用侧滑菜单。侧滑菜单项一般都是用Fragment。 一般设计上是在Home page的layout中使用FrameLayout 作为一个container 如:content_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

yuxiaohui78的专栏 4111

fragment 简单的例子

fragment是什么呢 fragment相当于一块画布 可以根据要求在fragment更改界面 就是说不换activity的情况下把局部布局给改了

qq_39388035的博客 3767

Fragment之间的切换

背景和要求:在一个FragmentA中设置一个View的监听,当这个view被点击时,就进入FragmentB,然后当点击FragmentB中的某个view的时候要重新返回到FragmentA中。这个就是类似于网易云音乐的切换歌词显示的效果。      首先有一个MusicPlayFragment类,该类继承了抽象类AbsMusicPlayFragment,他主要完成音乐播放的一些逻辑,因为主要

sd_zhuzhipeng的专栏 1559

Android Fragment使用之实例演示

Fragment是Android honeycomb 3.0新增的概念,在如何使用Android Fragment中做了关于Fragment的详细介绍。本文则主要是通过实例的方式让大家更直观的了解Fragment的使用方法。        首先贴上实例的运行效果截图:        效果图的左边是一个列表,右边是列表item的详情。        先看一下布局文件(layout): XML/HTML代码 <?xml version=“1.0″ encoding=“utf-8″?> <LinearLayout xmlns:android=“http://schemas.android.co

Android开发基础——Fragment实践

而在onCreateViewHolder的点击事件注册中,首先获取News实例,然后判断双页还是单页模式,如果是单页模式,就启动新的Activity显示新闻内容,而如果是双页模式,则更新NewsContentFragment中的数据。在上面的代码中,onCreate方法通过Intent获取到了传入的标题和内容,然后调用refresh方法,将该标题和内容传入,以显示其内容。并且在上面的内容中,新闻内容的布局是不可见的,因为在双页模式下,如果没有选中新闻列表中的任何一条新闻,就不应该显示新闻内容布局。

止步听风的博客 1423

RAG——从0到1快速搭建RAG应用

本文介绍了基于LangChain框架构建RAG(检索增强生成)应用的技术方案,涵盖核心模块选型与实现流程。技术栈包括:LangChain应用框架、pypdf文档解析、RecursiveCharacterTextSplitter文本分块、bge-small-zh-v1.5向量模型、Faiss向量库和通义千问大模型。文章详细说明了开发环境配置步骤,包括虚拟环境创建、依赖库安装和模型下载。核心代码分为索引、检索、生成三大流程,索引流程完成PDF文档解析、分块和向量化存储;检索流程实现查询向量化和相似度匹配;生成流

小志的博客 590

Android之Fragment实现界面交互小实例2

上一篇博文讲的是直接在layout中的xml文件中声明fragment,用android:name=""指明了在layout中药实例化的fragment类,当系统创建这个activity layout时,它实例化每一个在layout中声明的fragment,并调用每一个对应fragment类的onCreateView()方法,来获取每一个fragment的layout,系统将从fragment类返

cool_oyty的专栏 1859

IEC61850实战:从ICD文件解析到模型构建

本文深入解析IEC61850标准中的ICD文件结构,从Header、IED到DataTypeTemplates部分,详细介绍了如何构建电力自动化设备的数据模型。通过实战案例展示ICD文件的创建过程,并分享常见问题的调试技巧,帮助工程师快速掌握IEC61850建模方法,提升电力系统自动化项目的实施效率。

weixin_26841743的博客 496

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 854

Fragment实现界面交互小实例<1>

先看一下效果图:        左右各是一个Fragment,左边的三个按钮可以控制右边的背景色,右边的mood按钮,可以控制左边最上面的ImageView,这样就简单的实现了Fragment的界面交互。         在MainActivity的布局中添加Fragment有两种方式,不同添加Fragment的方法,要实现两个Fragment的交互的差异是很大的,本文讲比较简单的一种,下一节...

u011472898的专栏 226

AMBA-ATB spec

AMBA-ATB spec 1. ATB总线的用途及版本 1.1 ATB总线用途 一般来说,ATB(Advanced Trace Bus)总线用来在ARM的coresight组件之间传递trace数据。如下图所示: 1.2 ATB总线的版本 ATB(Advanced Trace Bus)共有两个版本,其中v1.0作为AMBA3的一部分,于2006年发布的,而v1.1则是2012年随着AMBA4发布的。ATB规范新增了数据(主要针对trace data)不可知的接口,以便在跟踪系统中根据 AMBA 规范跟

weixin_43781229的博客 7344

Android之Fragment实现界面交互小实例1

先看一下效果图:         左右各是一个Fragment,左边的三个按钮可以控制右边的背景色,右边的mood按钮,可以控制左边最上面的ImageView,这样就简单的实现了Fragment的界面交互。         在MainActivity的布局中添加Fragment有两种方式,不同添加Fragment的方法,要实现两个Fragment的交互的差异是很大的,本文讲比较简单

cool_oyty的专栏 1081

AI工具赋能日常工作的实践指南:以产品经理与程序员为例

AI工具赋能日常工作的实践指南:以产品经理与程序员为例

专注于编程、AI、人工智能等多个领域内容研究和分析 591

SQL基础:HQL之常用的行列转换应用总结

行列转换是数据开发者的基本技能,也是面试重点,在数据开发中处处可见,本文对常见的几种情况进行了总结,包括了多行转多列,多行转单列,多列转多行,单列转多行的几种情况,并给出了解决思路和方法,读者可根据本文给出的思路灵活应对业务中遇到的问题。

石榴姐yyds 1800

Fragment实现界面交互小实例<2>

        上一篇博文讲的是直接在layout中的xml文件中声明fragment,用android:name=""指明了在layout中药实例化的fragment类,当系统创建这个activity layout时,它实例化每一个在layout中声明的fragment,并调用每一个对应fragment类的onCreateView()方法,来获取每一个fragment的layout,系统将从...

u011472898的专栏 211

SAP-RPT-1 深度解读:面向企业表格数据的 rapid one

摘要: SAP在TechEd 2025大会上推出面向企业结构化数据的SAP-RPT-1(Relational Pretrained Transformer),旨在通过in-context learning直接预测表格数据中的缺失值,无需传统机器学习流程。与LLM不同,RPT专为业务表格设计,支持实时预测(如交货延迟、回款风险等)。提供Small(高吞吐)、Large(高精度)和开源版本,用户可通过无代码Playground(上传CSV并用[PREDICT]标记目标列)或Python API快速验证。典型场景

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 235

【Android笔记#2】底部导航栏小实例:FragmentTransaction+ImageView设置监听简单模拟微信窗口切换Fragment

各fragment的xml及类文件不再一一给出,java文件简单地布局文件的onCreateView();方法绑定各自xml文件并返回一个View。 主布局Activity_main.xml: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.andro...

Jelly_Bean的博客 529

LLC设计指南(一)第一章:别一上来就背公式,先把 LLC 的“脾气”摸清楚

很多工程师第一次学 LLC,都会有一种感觉:这个电源拓扑,好像不是在工作,而是在“跳舞”。Buck 很直观,开关一开,电感充电;开关一关,电感放电。Flyback 也好理解,先存能量,再把能量丢给副边。但 LLC 不一样。它不是硬邦邦地把能量“推过去”,而是让电感、电容、变压器一起形成一个谐振网络,让能量在里面来回摆动。控制器再通过调节开关频率,把这个摆动过程“驯服”成稳定输出。这也是 LLC 最迷人的地方:🎯。

weixin_43199439的博客 317

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

activity嵌套fragment,fragment内嵌fragment之间传值切换fragment

至于fragment的用法,fragment+viewpager的滑动切换代码请参考博文 Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用 fragment与Activity 当在使用activity嵌套fragment,fragment再嵌套子fragment时,相当于有两层fragment,假设最外层为第一层,其中

fanfan 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Fragment嵌套Fragment

问题1、fragment嵌套fragment不显示问题 通常时候,我们制作底部Tab切换,会用到fragment。即一个Activity下,使用4种fragment。这次遇到的问题是关于fragment再次嵌套fragmen的问题,功能需要在其中一个fragment中再次嵌套frament,使用viewPager嵌套,此时需要注意一点,使用viewpager包裹住子fragment,我们都知道v...

CHZKAL的博客 6780

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Fragment动态实现及解决Fragment重叠问题

一、知识回顾(1)onSaveInstanceState()和onRestoreInstanceState()调用机制 地址:https://blog.csdn.net/qq_34490018/article/details/80069365(2)Fragment基础详解 地址:https://blog.csdn.net/qq_34490018/article/details/80100941...

我的书包哪里去了 5866

Fragment 跳转到指定的Fragment 与 Activity跳转到指定的Fragment 的方法

Fragment 跳转到指定的Fragment 主要分为2中情况 1 同一个Activity上的Fragment 跳转到指定Fragment 例如MainActivity 上的Fragment 跳转问题 2 不在同一个Activity的2个Fragment 跳转 如果对Fragment 跳转问题没有思路,首先需要想到的就是Fragment 不可能独立存在的,它依附于Activity 这样...

小牧在一直在学习,在前进的道路上大家一起学习,进步。 5792

Activity管理Fragment之Fragment关闭当前回到之前Fragment

直接上代码说明: 首先默认你已经写好了一个Activity并至少添加了一个Fragment,下面是我的Activity中Fragment的布局代码和java代码; Activity中Fragment的布局代码: xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/an

成长笔记 1万+
上一篇: 如何成为软件高手
下一篇: 图片资源的平铺
Steffen02
博客等级 码龄16年 138粉丝 33原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值