·1.MainActivity采用线性布局

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

<1>新建XML文件

采用线性布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#fffff0"
android:layout_height="match_parent"> <Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="隐藏" />
</LinearLayout>

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

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

View view=inflater.inflate(R.layout.layout1,container,false);
package com.lucky.test07;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout; public class MyFragment extends Fragment {
LinearLayout linearLayout;
Button button2;
FragmentManager fragmentManager; @Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.layout1,container,false);
linearLayout=getActivity().findViewById(R.id.line1); //通过getActivity()获取activity_main.xml文件中id号为line1的LinearLayout布局
button2=view.findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragmentManager=getFragmentManager(); //实例化fragmentManager
FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据
transaction.remove(MyFragment.this); //移除MyFragment
transaction.commit(); //提交数据
maxScreen(); //调用满屏函数 }
}); return view;
} @Override
public void onDestroy() {
super.onDestroy();
maxScreen();
} //设置线性布局为满屏
public void maxScreen(){
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(getActivity().getWindowManager().getDefaultDisplay().getWidth(),
getActivity().getWindowManager().getDefaultDisplay().getHeight()));
}
}

4.在MainActivity.java中应用Fragment

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

效果图:

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. linux lvs 配置

    redhatAS4.2 安装集群LVS 环境描述: 本文在配置LVS时使用三台linux,一台做Directorserver (192.168.0.25) ,两台做realserver(192.168 ...

  2. c++ 装饰模式(decorate)

    装饰模式:动态地给一个对象添加一些额外的职责.就增加功能来说,装饰模式相比生成子类 更为灵活.有时我们希望给某个对象而不是整个类添加一些功能.比如有一个手机,允许你为手机添加特性,比如增加挂件.屏幕贴 ...

  3. Docker保存修改后的镜像

    1.启动镜像并做出修改 docker run -it centos /bin/bash [root@afcaf46e8305 /]# 注意afcaf46e8305是产生的容器ID,前面运行的时候不要- ...

  4. C# JackLib系列之字体使用

    字体的使用一般我们都是使用系统字体,这样比较方便,直接 Font font=new Font("微软雅黑",16f,FontStyle.Bold); 但是当我们用到一个系统没有的字 ...

  5. 【Android学习】自定义checkbox

    1.1 自定义checkbox 选中图片 自定义checkbox使用的时android:background而不是android:button,原因在于使用button时自定义图片过大超出边缘部分会截 ...

  6. C# 取得内网IP、外网IP、客户端IP方法

    前言 在 Windows Form Application 里对于取得 IP Address 有内网.外网两种 IP Address ,如果只需要取得内网 IP Address ,可以透过使用 IPH ...

  7. Ubuntu安装开发版pidgin支持lwqq插件

    sudo add-apt-repository ppa:lainme/pidgin-lwqq  """添加pidgin-lwqq源""" s ...

  8. SQL之TCL

    TCL(Transaction Control Language)事务控制语言 COMMIT  提交SAVEPOINT 设置保存点ROLLBACK  回滚SET TRANSACTION

  9. 简单工厂(Simple Factory)模式

    工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类.工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(F ...

  10. Sharepoint2013搜索学习笔记之设置外网内容源(四)

    第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,选择内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选网站,在爬网设置中选中仅对 ...