android fragment动态加载,动态添加Fragment
8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
动态添加Fragment
在程序运行时, 根据具体情况来动态地添加Fragment到Activity中.
1 新建 AnotherRightFragment 作为另一个右侧Fragment . 并写好布局文件 another_right_fragment.xml.(黄色背景)import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class extends Fragment{
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.another_right_fragment, container, false);
return view;
}
}
布局文件 another_right_fragment.xml.(黄色背景)
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffff00"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="另一个Fragment"
android:textSize="20sp" />
2 修改 activity_main.xml. 将右侧Fragment放在了一个 FrameLayout 中
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/left_fragment"
android:name="com.yassblog.LeftFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
android:id="@+id/right_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
android:id="@+id/right_fragment"
android:name="com.yassblog.RightFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3 修改MainActivity 中的代码import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
public void onClick(View v){
switch (v.getId()) {
case R.id.button:
AnotherRightFragment fragment = new AnotherRightFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.right_layout, fragment);
transaction.commit();
break;
default:
break;
}
}
}
可以看到,首先我们给左侧Fragment中的按钮注册了一个点击事件,然后将动态添加Fragment的逻辑都放在了点击事件里进行。
4 动态添加Fragment的逻辑创建待添加的Fragment实例。
获取到 FragmentManager,在Activity中可以直接调用 getFragmentManager()方法得到。
开启一个事务,通过调用 beginTransaction()方法开启。
向容器内加入Fragment,一般使用 replace()方法实现,需要传入容器的 id 和待添加的Fragment实例。
提交事务,调用 commit()方法来完成。
5 这样就完成了在Activity中动态添加Fragment的功能,重新运行程序,点击左侧按钮,查看一下效果.
android fragment动态加载,动态添加Fragment相关推荐
- 动态加载html 添加样式表,使页面动态加载不同CSS样式表,从而实现不同风格模板的方法...
我们在制作网页时,有时会制作多种风格模板,而想把这些模板都用起来,而又不知道方法,通过以下两种方法,你就可以实现相同网站不同CSS模板的方法. ASP.Net中利用CSS实现多界面两种方法. 方法一: ...
- 替换Android中VM 加载动态库方式
Android 加载动态库的代码在 dalvik/vm/Native.cpp ( froyo 中是 Native.c),加载的方式就是调用 libdl 中 dlopen, dlsym 这些函数 应该可 ...
- C# 动态加载 动态卸载
代码 using System; using System.Collections.Generic; using System.Text; using System.Threading; using ...
- linux中动态加载动态库的方法
功能:打开一个动态链接库 包含头文件: #include <dlfcn.h> 函数定义 : void * dlopen( const char * pathname , int mod ...
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件.程序目标无非是:高效.轻巧.清晰.标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择: 方法1:静态主 ...
- 【Android 逆向】加壳技术简介 ( 动态加载 | 第一代加壳技术 - DEX 整体加固 | 第二代加壳技术 - 函数抽取 | 第三代加壳技术 - VMP / Dex2C | 动态库加壳技术 )
文章目录 一.动态加载 二.第一代加壳技术 ( DEX 整体加固 ) 三.第二代加壳技术 ( 函数抽取 ) 四.第三代加壳技术 ( Java 函数 -> Native 函数 ) 五.so 动态库 ...
- 动态加载、插件化、热部署、热修复(更新)知识汇总
开发中经常能听到动态加载,插件化,热部署等词,动态加载到底是何方神物,它能实现什么功能,实现原理又如何?动态加载和插件化.热部署又有着什么样的联系呢?下面我们一起来学习吧. 1. 基本知识 1.1 动 ...
- Fragment 懒加载
为何懒加载 在很多 App 都会有ViewPage + Fragment 的基本组合,但是众所周知 viewPager 的 预加载机制,即使设置函数 setOffscreenPageLimit(0) ...
- 动态加载和静态加载及其编译步骤
在类unix操作系统中,驱动加载方式一般分为:动态加载和静态加载,下面分别对其详细论述. 一.动态加载 动态加载是将驱动模块加载到内核中,而不能放入/lib/modules/下. 在2.4内核 ...
最新文章
- vue css 应用变量_如何使用CSS Grid和CSS变量快速为应用创建原型
- 您如何确定以编程方式发送的电子邮件不会自动标记为垃圾邮件?
- Hi3515支持NFS-ROOT启动
- 【Android平台】Alljoyn学习笔记一 Alljoyn简介
- DOM-13 【实战】输入及状态改变事件、京东搜索框
- [css] 请使用css写一个多级的下拉菜单
- TensorFlow构建二维数据拟合模型(1)
- dpm码识别_如何读取直接零件打标码(DPM)
- FFmpeg源代码简单分析:avformat_close_input()
- Atitit 理财之道---支出大骗局分析与防范
- 飞机大战(Java)
- python源码打包成exe、exe反编译、pyd加密防止反编译
- 哈夫曼编码的理解(Huffman Coding)
- 转专业申请加拿大计算机硕士,GPA低?教你如何成功申请加拿大硕士!
- 【推荐】“汇新杯”新兴科技+互联网创新大赛——IT人大展拳脚的创业大赛
- BUU MISC(5_10-5_14)
- SAP外围系统配置问题之创建和导入bussiness system-找不到应有的bussiness system
- Android获取定位经纬度
- code回归采访哭 ladies_LADIES’CODE再次提到高恩妃和权梨世的车祸事故 在节目中流泪...
- word文档找不到smartart_Word2007新工具“SmartArt”使用教程
热门文章
- python post有随机字符串_如何用python requests post一段字符串
- 电气笔记:线路、主变、母线保护讲解
- 词云(WordCloud)参数详情
- wxWidgets:wxSpinButton类用法
- wxWidgets:wxArrayString类用法
- boost::range模块strided相关的测试程序
- boost::multiprecision模块将 std::numeric_limits 用作 multiprecision.qbk 上的多精度文档片段的示例
- boost::log模块实现从设置文件初始化库的示例
- boost::gil::view_is_mutable用法的测试程序
- boost::geometry::geometry_id用法的测试程序