009 Android Fragment动态用法(实现动态菜单栏)设置控件为满屏状态
·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动态用法(实现动态菜单栏)设置控件为满屏状态的更多相关文章
- Android 终于官方支持按百分比来设置控件的宽高了
dependencies { compile 'com.android.support:percent:22.2.0' } 支持布局 PercentRelativeLayout <android ...
- Android 如何在Java代码中手动设置控件的marginleft
1.定义LayoutParams LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.La ...
- android PercentRelativeLayout 支持百分比来设置控件的宽高
Android 最终官方支持按百分比来设置控件的宽高了. 我们先来看看效果: 看一下布局: PercentRelativeLayout <android.support.percen ...
- android屏幕适配的全攻略3-动态获取手机屏幕宽高及动态设置控件宽高
1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetr ...
- 在ASP.NET中动态加载内容(用户控件和模板)
在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...
- WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...
- (转载) Android RecyclerView 使用完全解析 体验艺术般的控件
Android RecyclerView 使用完全解析 体验艺术般的控件 标签: Recyclerviewpager瀑布流 2015-04-16 09:07 721474人阅读 评论(458) 收藏 ...
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- Android线程中设置控件
在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...
随机推荐
- 因浏览器而异的空白节点(js清除空白节点)
先看下面的代码:<dl id="dll"> <dt>title</dt> <dd>definition</dd>&l ...
- docker问题:docker端口映射错误
1 docker端口映射错误 1.1 问题描述 利用docker启动nginx容器的时候报错: 1.2 解决办法 一次执行下面的命令就可以解决 pkill docker iptables -t nat ...
- C++获取时间并命名为文件名
#include <time.h> char pStrPath1[20];time_t currTime;struct tm *mt;Mat saveImg1; currTime = ti ...
- golang hello
package main import "fmt" func main() { fmt.Printf("Hello, world.\n") }
- win32 多线程 (五)Event
Event是内核对象,他可以分为自动和手动两种模式. HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManual ...
- Django框架 之 跨域请求伪造
Django框架 之 跨域请求伪造 浏览目录 同源策略与Jsonp 同源策略 Jsonp jQuery对JSONP的实现 CORS 简介 两种请求 同源策略与Jsonp 同源策略 同源策略(Same ...
- c++模板实现 linq
// ConsoleApplication32.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" using namespace std; # ...
- 7. Smali基础语法总结
最近在学习Android 移动安全逆向方面,逆向首先要看懂代码,Android4.4之前一直使用的是 Dalivk虚拟机,而Smali是用于Dalivk的反汇编程序的实现. Smali 支持注解,调试 ...
- php系统常量
(1)__FILE__ :php程序文件名.它可以帮助我们获取当前文件在服务器的物理位置. (2)__LINE__ :PHP程序文件行数.它可以告诉我们,当前代码在第几行. (3)PHP_VERSIO ...
- location.reload() 和 location.replace()的区别和应用
首先介绍两个方法的语法: reload 方法,该方法强迫浏览器刷新当前页面.语法: location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 fals ...