Android中在代码中动态(用事物)添加Fragment
来源:互联网 发布:ip mac绑定 编辑:程序博客网 时间:2024/05/31 18:55
效果
代码结构
在MainActivity中动态(用事物)添加LeftFragment和RightFragment
核心代码:
activity_main.xml:
<LinearLayout 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:orientation="horizontal" >
<!-- 放LeftLeftFragment的布局 -->
<LinearLayout
android:id="@+id/left"
android:layout_weight="5"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#F5DEB3"
>
</LinearLayout>
<!-- 放RightFragment的布局 -->
<LinearLayout
android:id="@+id/right"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#FFB6C1"
>
</LinearLayout>
</LinearLayout>
MainActivity中:
/* 本项目在在代码中用事务添加碎片
* 无论左边碎片,还是右边碎片都是用事务,并且在activity类中添加的
* 碎片是3.0以后出来的,所以支持的最低版本是3.0,
* 在主清单文件中要改成11,低于3.0会出现异常
*/
public class MainActivity extends Activity {
private Button leftbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化碎片对象
LeftLeftFragment fragment = new LeftLeftFragment();
// 获得碎片管理器
FragmentManager manager = this.getFragmentManager();
// 获得事务
FragmentTransaction transaction = manager.beginTransaction();
// 把碎片添加到activity中,R.id.left指的是activity中布局的id
transaction.add(R.id.left, fragment);
// 提交
transaction.commit();
}
/* 在activity的方法中写点击事件,出现右边界面
* 在activity中用左边的碎片,开启右边的碎片
* 也可以在左边碎片的类中开启右边碎片参考Android_wl_fragment_003
*/
@Override
protected void onResume() {
super.onResume();
// 把碎片加到activity中后碎片中的控件也属于activity
// 在activity中找到左边碎片的按钮
this.leftbutton=(Button) findViewById(R.id.leftbutton1);
this.leftbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 实例化右边的碎片对象
RightFragment fragment = new RightFragment();
FragmentManager manager = MainActivity.this.getFragmentManager();
FragmentTransactiontransaction=manager.beginTransaction();
// 把碎片添加到碎片中
transaction.add(R.id.right, fragment);
transaction.commit();
}
});
}
}//class
LeftLeftFragment
public class LeftLeftFragment extends Fragment {
// 在碎片中至少要重写这些方法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// 用布局填充器把布局转换成一个view对象,并返回
// 只有用三个参数才能把布局填满
View view = inflater.inflate(R.layout.fragment_left, container, false);
return view;
}
@Override
public void onPause() {
super.onPause();
}
}
RightFragment
public class RightFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// 用布局填充器把布局转换成一个view对象,并返回
// 只有用三个参数才能把布局填满
View view = inflater.inflate(R.layout.fragment_right, container, false);
Button button=(Button) view.findViewById(R.id.rightbutton1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "右边的碎片被点击了",5).show();
}
});
return view;
}
@Override
public void onPause() {
super.onPause();
}
}
如果没明白下载我的例子
http://download.csdn.net/detail/zhaihaohao1/8289787
activity和fragment之间的数据传递
http://blog.csdn.net/zhaihaohao1/article/details/41843495
- Android中在代码中动态(用事物)添加Fragment
- 在Android代码中动态添加视图
- Android-Fragment(2)-在Activity中动态添加删除
- Android在Fragment中嵌套(添加)Fragment
- 在Activity中静态、动态添加Fragment
- Android中使用ViewPager+Fragment动态删除添加Fragment问题
- android: 在fragment中添加actionbar, menu
- Android中在activity用代码动态添加布局
- Activity中动态添加Fragment.
- Fragment(2)-在Activity中动态添加删除
- Android中在xml中静态添加Fragment
- 如何在代码中给Fragment添加主题
- Android代码中动态添加布局
- android代码中动态添加控件
- android:代码中动态添加子布局
- android:代码中动态添加子布局
- 在Acitivity中添加Fragment
- 在Activity中添加Fragment
- Cache与Buffer区别
- 使用Android Studio开发android应用(持续更新)
- 第十七周项目二 引用做形参
- 3Sum -- Leetcode
- Android虚拟机调优
- Android中在代码中动态(用事物)添加Fragment
- 众多Android 开源项目推荐
- HBase总结(二十)HBase常用shell命令详细说明
- 跟着鬼哥学so修改,四,实例第一篇
- Tomcat配置多个端口号或多个应用
- linux源码编译安装mongodb
- 数据库查询分页
- Android3.1 init进程启动源码分析
- error LNK2001: 无法解析的外部符号 __imp__MessageBoxA@16