009 Android Fragment动态用法(实现动态菜单栏)Inflate()函数作用及设置控件为满屏状态

摘要:
·1.MainActivity采用线性布局2.在app---˃res---˃layout,右击new---˃xml----˃layoutxmlFILE新建XML文件采用线性布局˂?

·1.MainActivity采用线性布局

009 Android Fragment动态用法(实现动态菜单栏)Inflate()函数作用及设置控件为满屏状态第1张

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类

009 Android Fragment动态用法(实现动态菜单栏)Inflate()函数作用及设置控件为满屏状态第2张

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

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


importandroid.os.Bundle;
importandroid.support.annotation.NonNull;
importandroid.support.annotation.Nullable;
importandroid.support.v4.app.Fragment;
importandroid.support.v4.app.FragmentManager;
importandroid.support.v4.app.FragmentTransaction;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.Button;
importandroid.widget.LinearLayout;

public class MyFragment extendsFragment {
    LinearLayout linearLayout;
    Button button2;
    FragmentManager fragmentManager;

    @Nullable
    @Override
    publicView 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(newView.OnClickListener() {
            @Override
            public voidonClick(View v) {
                fragmentManager=getFragmentManager(); //实例化fragmentManager
                FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据
                transaction.remove(MyFragment.this); //移除MyFragment
                transaction.commit(); //提交数据
                maxScreen();  //调用满屏函数
}
        });

        returnview;
    }

    @Override
    public voidonDestroy() {
        super.onDestroy();
        maxScreen();
    }

    //设置线性布局为满屏
    public voidmaxScreen(){
        linearLayout.setLayoutParams(newLinearLayout.LayoutParams(getActivity().getWindowManager().getDefaultDisplay().getWidth(),
                getActivity().getWindowManager().getDefaultDisplay().getHeight()));
    }
}

4.在MainActivity.java中应用Fragment

public class MainActivity extendsAppCompatActivity {
    Button button;  //定义一个按钮,将其引入后台
    FragmentManager fragmentManager;//定义一个fragmentManager
LinearLayout linearLayout;

    @Override
    protected voidonCreate(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(newView.OnClickListener() {
            @Override
            public voidonClick(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动态用法(实现动态菜单栏)Inflate()函数作用及设置控件为满屏状态第3张

免责声明:文章转载自《009 Android Fragment动态用法(实现动态菜单栏)Inflate()函数作用及设置控件为满屏状态》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇小区光纤PON接入组网方式与案例Android中两种获取并处理用户的截屏图片的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IE中自定义标签使用自封闭格式引发错误!

最近学习IONIC,其中用到了ion-menu-nav-button,由于标签开始和结尾之间没有内容,所以图省事儿使用自封闭标签的写法: <ion-menu-nav-button class="button-icon icon ion-navicon" ng-click="tgMenu();" /> 在chrome和firefox下都没有问题,...

测试与发布( Alpha版本 )

THE BUG 团队 杨梓琦 温海源 李华 陈杰才 郑堡恩 钟明康 软件说明 本软件用MYSQL数据库保存所有的数据内容,因此可以通过查询数据库查询功能是否正常进行。 测试过程 在测试过程中,左右两张图是操作前和操作后的对比 1.测试登录模块(不同身份的用户登录会实现不同的功能) 用户数据库中的内容 测试一:张三是售货员,输入用户名密码并点击后会出现售...

qt 5 小练习 纯代码制作自定义按钮

大家都知道QT设计师中直接拖动的按钮是长方形带有圆角的图案,那我们如何来设置自定义按钮呢 要设计一个按钮,我们必须要知道按钮有什么属性,首先,按钮必须有一个位置 第二,按钮必须有一个名称。还有当我们点击按钮时他会做出什么样的反应。所以我们定义两个类, 一个QRect _rect; (或者QPoint 更为贴切吧) 第二个是 QString _text; 既...

手把手教你建网站--程序小白适用篇

对于完全不懂代码的程序小白,怎样去快速的建一个网站呢,在此之前一直感觉建站是一个非常庞大负责的工作,直到接触了css,js并且自己也搭了几个站以后以后才发现建站其实还是非常简单的。今天就手把手教给大家网站的具体搭建方法,希望那些没有任何程序基础的人也能自己建站。 【1】准备工作 当然在建网站前是需要先申请域名进行备案的,具体步骤和注意事项可以参考我之前读过...

Vue+element UI实现“回到顶部”按钮组件

介绍 这是一个可以快速回到页面顶部的组件,当用户浏览到页面底部的时候,通过点击按钮,可快速回到页面顶部。 使用方法 由于该组件是基于element-UI进行二次封装的,所以在使用该组件时请务必安装element-UI(安装方式猛戳这里),安装好element-UI后,只需将该组件文件夹BackToTop导入到现有项目中即可使用。 使用示例 <temp...

修改bootstrap-table中的分页样式

使用bootstrap-table时,使用$("")选择器没办法选中下方的分页button按钮,可能跟它是动态生成的有关吧。 最终找到与之对应的js(bootstrap-table.js中搜索了data-toggle),将class类更换成自己定义的一个class,完成了期望的效果 var pageNumber = [Utils.sprintf('<...