·1.MainActivity采用线性布局

2.在app--->res--->layout,右击new--->xml---->layout xml FILE

<1>新建XML文件

采用线性布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:background="#fffff0"
  7. android:layout_height="match_parent">
  8.  
  9. <Button
  10. android:id="@+id/button2"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:layout_weight="1"
  14. android:text="隐藏" />
  15. </LinearLayout>

3.在app-->java--->com.lucky.test07目录下新建MyFragment类

View.inflate()是加载一个布局文件

  1. View view=inflater.inflate(R.layout.layout1,container,false);
  1. package com.lucky.test07;
  2.  
  3. import android.os.Bundle;
  4. import android.support.annotation.NonNull;
  5. import android.support.annotation.Nullable;
  6. import android.support.v4.app.Fragment;
  7. import android.support.v4.app.FragmentManager;
  8. import android.support.v4.app.FragmentTransaction;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.Button;
  13. import android.widget.LinearLayout;
  14.  
  15. public class MyFragment extends Fragment {
  16. LinearLayout linearLayout;
  17. Button button2;
  18. FragmentManager fragmentManager;
  19.  
  20. @Nullable
  21. @Override
  22. public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  23. View view=inflater.inflate(R.layout.layout1,container,false);
  24. linearLayout=getActivity().findViewById(R.id.line1); //通过getActivity()获取activity_main.xml文件中id号为line1的LinearLayout布局
  25. button2=view.findViewById(R.id.button2);
  26. button2.setOnClickListener(new View.OnClickListener() {
  27. @Override
  28. public void onClick(View v) {
  29. fragmentManager=getFragmentManager(); //实例化fragmentManager
  30. FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据
  31. transaction.remove(MyFragment.this); //移除MyFragment
  32. transaction.commit(); //提交数据
  33. maxScreen(); //调用满屏函数
  34.  
  35. }
  36. });
  37.  
  38. return view;
  39. }
  40.  
  41. @Override
  42. public void onDestroy() {
  43. super.onDestroy();
  44. maxScreen();
  45. }
  46.  
  47. //设置线性布局为满屏
  48. public void maxScreen(){
  49. linearLayout.setLayoutParams(new LinearLayout.LayoutParams(getActivity().getWindowManager().getDefaultDisplay().getWidth(),
  50. getActivity().getWindowManager().getDefaultDisplay().getHeight()));
  51. }
  52. }

4.在MainActivity.java中应用Fragment

  1. public class MainActivity extends AppCompatActivity {
  2. Button button; //定义一个按钮,将其引入后台
  3. FragmentManager fragmentManager;//定义一个fragmentManager
  4. LinearLayout linearLayout;
  5.  
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. button=findViewById(R.id.button);
  11. linearLayout=findViewById(R.id.line1); //实例化linearLayout
  12. fragmentManager=getSupportFragmentManager(); //初始化fragmentManager
  13.  
  14. //绑定点击事件
  15. button.setOnClickListener(new View.OnClickListener() {
  16. @Override
  17. public void onClick(View v) {
  18. //设置线性布局的宽度
  19. linearLayout.setLayoutParams(new LinearLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth()/3,
  20. getWindowManager().getDefaultDisplay().getHeight()));
  21. FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据
  22. transaction.replace(R.id.layout_main,new MyFragment()); //添加数据,参数1为activity_main.xml文件中的id
  23. transaction.addToBackStack(null); //监听退出键,若按退出键会返回上一级应用
  24. transaction.commit(); //提交数据
  25. }
  26. });
  27. }
  28. }

效果图:

009 Android Fragment动态用法(实现动态菜单栏)设置控件为满屏状态的更多相关文章

  1. Android 终于官方支持按百分比来设置控件的宽高了

    dependencies { compile 'com.android.support:percent:22.2.0' } 支持布局 PercentRelativeLayout <android ...

  2. Android 如何在Java代码中手动设置控件的marginleft

    1.定义LayoutParams LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.La ...

  3. android PercentRelativeLayout 支持百分比来设置控件的宽高

    Android 最终官方支持按百分比来设置控件的宽高了. 我们先来看看效果:       看一下布局: PercentRelativeLayout <android.support.percen ...

  4. android屏幕适配的全攻略3-动态获取手机屏幕宽高及动态设置控件宽高

    1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetr ...

  5. 在ASP.NET中动态加载内容(用户控件和模板)

    在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...

  6. WPF中动态加载XAML中的控件

    原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...

  7. (转载) Android RecyclerView 使用完全解析 体验艺术般的控件

    Android RecyclerView 使用完全解析 体验艺术般的控件 标签: Recyclerviewpager瀑布流 2015-04-16 09:07 721474人阅读 评论(458) 收藏  ...

  8. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  9. Android线程中设置控件

    在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...

随机推荐

  1. SpringMVC——数据转换 & 数据格式化 & 数据校验

    一.数据绑定流程 1. Spring MVC 主框架将 ServletRequest 对象及目标方 法的入参实例传递给 WebDataBinderFactory 实例,以创 建 DataBinder ...

  2. ssh试卷

    2.简述Hibernate的工作原理. 答:首先,Configuration读取Hibernate的配置文件及映射文件中的信息,即加载配置文件和映射文件,并通过Hibernate配置文件生成一个多线程 ...

  3. App测试从入门到精通之交叉事件测试

    交叉事件测试又叫事件或者叫冲突测试.对于正在运行的应用,若进入短信,电话等其他软件响应的情况,不会影响所测试应用,且会保证应用都能正确运行.下面我来看一下关于交叉测试中,我们测试人员需要考虑的一些测试 ...

  4. WordPaster2-正式包布署说明

    1.1. 多平台布署说明 提供信息如下: 1.多平台控件包(根据购买版本提供) 2.控件信息 3.配置方法   WordPaster(x86)Clsid信息 ClsidParser F4B7C0FD- ...

  5. BZOJ3223 文艺平衡树(splay)

    题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...

  6. 再次迷宫救人——BFS

    原创 上次用DFS解了迷宫救人:https://www.cnblogs.com/chiweiming/p/9313164.html 这次用BFS(广度优先搜索),实现广度优先搜索比深度优先搜索复杂,思 ...

  7. 【C#】特性标签中的属性解释

    第一个为特性作用于类,或者接口(interface) 第二个为是否允许重叠定义,就是连续写两个特性标签 第三个为是否继承,当继承时候,除输出子类外,父类也将输出

  8. Socket网络通讯

    网络编程 使用C#进行网络编程时,通常都需要用到System.Net命名空间.System.Net.Sockets命名空间和System.Net.Mail命名空间: 1. System.Net命名空间 ...

  9. Sql Server 公用表达式(CTE)

    简介 对于select查询语句来说,通常情况下,为了使T-SQL代码更加简洁和可续,在一个查询中引入另外的结果集都是通过视图而不是子查询来进行分解的,但是,视图是作为系统对象存在数据库中,那对于结果集 ...

  10. SQL多行并一行统计例子之STUFF()函数+FOR XML PATH()函数应用

    SELECT * FROM tbiz_ProjectRelation 目标统计每个项目有几条申请记录 Step1 SELECT ProjectID , RelationIDs , , '') FROM ...