fragment使用方法

1. 创建主Mainactivity extends AppCompatActivity

2. Oncreate & setContentView

3. 完成XML的配置,包含两个部分,底部栏三个按钮及上边的content_view,注意都要加id(用来放接下来的的fragment)

4.创建3个fragment的layout xml页面

5. 创建fragment package,里面放3个fragment的页面,注意继承V4的Fragment,并修改return inflater

public class fragment_main extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main,container,false);
}
}

6. 在Mainactivity中初始化 3个fragment的java和xml
LinearLayout menu_Main;
LinearLayout menu_Middle;
LinearLayout menu_Menu;
protected fragment_main FragmentMain = new fragment_main();
protected fragment_menu FragmentMenu = new fragment_menu();
protected fragment_middle FragmentMiddle = new fragment_middle();

7. 将几个fragment页面添加到mainactivity中,并设置展示哪个,hide哪个
this.getSupportFragmentManager()
.beginTransaction()
.add(R.id.contain_con,FragmentMain)
.add(R.id.contain_con,FragmentMiddle)
.hide(FragmentMiddle)
.add(R.id.contain_con,FragmentMenu)
.hide(FragmentMenu)
.commit();

8. 初始化3个Xml页面并findbyid,若使用implement,则初始化监听
private void initView() {
menu_Main=findViewById(R.id.menu_main);
menu_Menu=findViewById(R.id.menu_menu);
menu_Middle=findViewById(R.id.menu_middle);

menu_Main.setOnClickListener(this);
menu_Menu.setOnClickListener(this);
menu_Middle.setOnClickListener(this);
}

9. implement或内部类方法设置监听

10 在监听方法中使用switch方法,点击哪个按钮就展示哪个fragment,并注意之前添加过fragment,所以只需设置show和hide。
switch (v.getId())
{
case R.id.menu_main:
this.getSupportFragmentManager()
.beginTransaction()
.show(FragmentMain)
.hide(FragmentMiddle)
.hide(FragmentMenu)
.commit();
break;
case R.id.menu_middle:
this.getSupportFragmentManager()
.beginTransaction()
.hide(FragmentMain)
.show(FragmentMiddle)
.hide(FragmentMenu)
.commit();
break;
case R.id.menu_menu:
this.getSupportFragmentManager()
.beginTransaction()
.hide(FragmentMain)
.hide(FragmentMiddle)
.show(FragmentMenu)
.commit();

break;
}

多个Fragment在一个activity中通过按钮的展示方法的更多相关文章

  1. Fragment在Activity中的应用 (转载)

    原文链接 http://www.cnblogs.com/nanxin/archive/2013/01/24/2875341.html 在本小节中介绍在Activity中创建Fragment. 官网有很 ...

  2. Android 自定义Dialog类,并在Activity中实现按钮监听。

      实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的 ...

  3. Android ViewPager+Fragment 在Activity中获取Fragment的控件

    如果ViewPager+Fragment实现Tab切换,在activity中利用adapter.getItem获取到fragment然后再根据fragment.的方法获取控件 //隐藏求租,以下代码用 ...

  4. Android(java)学习笔记169:Activity中的onCreate()方法分析

    1.onCreate( )方法是android应用程序中最常见的方法之一: 翻译过来就是说,onCreate()函数是在activity初始化的时候调用的,通常情况下,我们需要在onCreate()中 ...

  5. Android(java)学习笔记112:Activity中的onCreate()方法分析

    1.onCreate( )方法是android应用程序中最常见的方法之一: 翻译过来就是说,onCreate()函数是在activity初始化的时候调用的,通常情况下,我们需要在onCreate()中 ...

  6. android脚步---UI界面修改,关于activity中增加按钮和监听

    增加按钮和监听,这个和上个不同在于,它不是在一个dialog里面,而是从新写了一个activity,因此需要先找到这个activity的入口. case R.id.checkframe: if (mC ...

  7. Android开发中在一个Activity中关闭另一个Activity

    比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA 解决方案: 1. 在 ActivityA 里面设置一个静态的变量instance,初始化为this在 Ac ...

  8. Fragment在Activity中跳转,实现类似新闻标题跳转新闻内容功能

    1.准备的工作,新闻数据类,新闻数据适配器,适配器的布局: News.java package com.example.zps.fourfragmentbestpractice; /** * Crea ...

  9. 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数

    启动android studio创建一个新项目 public void sendMessage(View view){ Intent intent=new Intent(this,DispalyMes ...

随机推荐

  1. VC++6.0

    for 循环的小括号中 不可以定义变量 我也是醉了

  2. flask wtforms组件详解

    一.简介 在flask内部并没有提供全面的表单验证,所以当我们不借助第三方插件来处理时候代码会显得混乱,而官方推荐的一个表单验证插件就是wtforms.wtfroms是一个支持多种web框架的form ...

  3. fullcalendar日历插件的使用并动态增删改查

    我上个项目是做了一个关于教育方面的web端页面,其中的课程表就要用到fullcalendar日历插件,刚开始也是不会用,因为以前也没用过,后面也是看官方文档,问同事,最后完成了这个课程表,个人感觉fu ...

  4. Arguments Optional 计算两个参数之和的 function

    创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add(2, 3) 应该返回 5,而 add ...

  5. Django(六)Session、CSRF、中间件

    大纲 二.session 1.session与cookie对比 2.session基本原理及流程 3.session服务器操作(获取值.设置值.清空值) 4.session通用配置(在配置文件中) 5 ...

  6. 2019中山大学程序设计竞赛 Triangle

    今天水了一发hdu上的中山校赛 这个题交了将近十遍才过...... 就是说给 n 个木棍,如果能找出3个能组成三角形的木棍就输出yes 反之输出no 乍一看很简单 一个排序遍历一遍就好了 但是n值太大 ...

  7. NoSQL Manager for MongoDB 30天到期破解

    1.删除注册表:HKEY_CURRENT_USER\Software\NoSQL Manager Group2.删除应用数据:C:\ProgramData\NoSQL Manager Group 还是 ...

  8. Glide和Picasso的区别

    首先简单的介绍下两个库的出身: Picasso是Square公司出品的一款非常优秀的开源图片加载库Glide是由Google开发,基于 Picasso,依然有保存了Picasso的简洁风格,但是在此做 ...

  9. 前端知识之Ajax

    Asynchronous JavaScript and XML 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.是在不重新加载整个页面的情况下,与服务器交换数据并异步更新部分网页 ...

  10. java文件运行的过程

    javac .java——>编译成.class文件(字节码) 参考: https://www.cnblogs.com/yxwkf/p/3855363.html https://www.jians ...