`

使用inflater实现窗体布局

 
阅读更多
/* 传统的方式 */
  // setContentView(R.layout.main);
  
  /* inflater方式 */
  LayoutInflater inflater = LayoutInflater.from(Inflate.this);// 生成inflater对象
  LinearLayout mainFrame = (LinearLayout) inflater.inflate(R.layout.main,null);// 找到窗体的布局文件

  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
  this.addContentView(mainFrame, params);

 

通俗的说,inflate就相当于将一个xml中定义的布局找出来.

因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.

因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,:
    Viewview=View.inflate(this,R.layout.dialog_layout,null);
    TextViewdialogTV=(TextView)view.findViewById(R.id.dialog_tv);
    dialogTV.setText("abcd");

如果组件R.id.dialog_tv是对话框上的组件,而你直接用this.findViewById(R.id.dialog_tv)肯定会报错.

三种方式可以生成LayoutInflater
    

LayoutInflaterinflater=LayoutInflater.from(this);
    LayoutInflaterinflater=getLayoutInflater();
   LayoutInflaterinflater=(LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);

 

然后调用inflate方法将xml布局文件转成View
    publicViewinflate(intresource,ViewGrouproot,booleanattachToRoot)

View类中,也有inflate方法
    publicstaticViewinflate(Contextcontext,intresource,ViewGrouproot)

举个例子:通过Inflater加载窗体布局文件

 

 

分享到:
评论

相关推荐

    用Deflater与Inflater实现字节的压缩与解压

    在给定的文件"ZLibUtils.java"中,我们可以预见到它可能包含了用于压缩和解压缩的实用方法,封装了上述的Deflater和Inflater使用流程。这些方法可以方便地在项目中复用,提高代码的可读性和维护性。 总之,Deflater...

    android ListView 网格布局

    要实现网格布局,我们需要使用GridView或者结合使用ListView和GridLayout。由于标题提到的是“ListView的网格视图”,我们将主要讨论使用GridView的情况。GridView是一个二维的列表视图,可以设置每行的列数,从而...

    inflater三种用法

    转载的三种inflater的用法,主要是dialog、fragment会用到。

    Fragment实现横竖屏布局

    以上就是使用Fragment实现横竖屏布局的基本流程。通过这种方式,你可以根据设备的屏幕方向提供不同的用户体验,同时充分利用Fragment的灵活性来管理Activity中的多个屏幕区域。在实际开发中,还可以结合Android的...

    listview实现悬浮布局

    标题“listview实现悬浮布局”指的是如何让某个视图在ListView滚动时保持固定在屏幕顶部,这通常用于实现类似天气预报、导航栏等需要常显的功能。以下将详细介绍如何在ListView中实现这种悬浮布局。 首先,我们可以...

    实现动态加载布局和动态加载控件的两个demo例子

    第一个demo可能使用了`LayoutInflater`类来实现动态加载布局。`LayoutInflater`可以从XML布局文件中创建视图对象,然后将其添加到父视图中。例如: ```java LayoutInflater inflater = (LayoutInflater) context....

    在代码中动态加载布局并给布局分组

    除了基本的视图组件,你还可以创建更复杂的布局结构,比如嵌套视图,或者使用`RecyclerView`等组件来实现列表或网格布局的动态加载。同时,你还可以结合数据绑定和MVVM模式,使动态加载的布局更加数据驱动。 总的来...

    动态添加布局并实现点击事件

    在Android开发中,动态添加布局和实现点击事件是常见的需求,尤其在创建自定义列表、网格视图或者根据数据动态生成界面时。本教程将详细讲解如何实现这一功能,并结合在线图片加载及预览功能来进一步阐述。 首先,...

    动态加载布局——只改变一个页面的部分布局的方法

    下面将详细介绍动态加载布局的基本原理、实现方法以及在实际应用中的使用场景。 一、动态加载布局基本原理 动态加载布局基于Android的View类和LayoutInflater类。View是Android界面的基本元素,LayoutInflater则...

    Android在java中写布局及在代码中引入xml布局demo

    总的来说,Android开发中布局的设计和实现是关键的一环。理解如何在Java代码中编写布局和如何引入XML布局可以帮助您根据项目需求选择最适合的方法。无论是动态布局还是XML布局,都有其应用场景,合理利用两者可以...

    022 _UI_布局之线性布局-动态生成与LayoutInflater

    总结来说,"022 UI 布局之线性布局-动态生成与LayoutInflater"涵盖了Android开发中的重要概念,包括线性布局的使用、动态生成视图以及利用LayoutInflater优化布局加载。理解并熟练运用这些技巧,将有助于构建更加...

    Activity中用代码动态加载布局

    动态加载布局的优点在于可以实现动态UI,比如在用户触发某个事件后添加新的组件,或者根据网络数据创建可变的视图。这种方式对于创建复杂的、数据驱动的界面特别有用,如列表视图、网格视图等。 总之,Activity中用...

    android 动态添加布局

    本文将深入探讨如何实现"android 动态添加布局",并结合"FlowTagLayoutDemo-master"这个示例项目,提供一个实际的动态添加item布局以及动态更改布局尺寸的方法。 首先,我们要理解动态添加布局的基本原理。在...

    ListView加载不同布局.zip

    本教程将详细解释如何在ListView中实现加载不同布局,即“图片文字”与“纯文字”布局交替显示。 首先,我们需要了解ListView的工作原理。ListView通过Adapter类来绑定数据和视图。Adapter就像一个桥梁,连接数据源...

    Android inflater 用法及不同点

    Android inflater 和 findViewById() 的不同点在于,LayoutInflater 是用来实例化 XML 布局文件的,而 findViewById() 是用来获取 XML 布局文件下的具体控件(如 Button、TextView 等)。 在实际开发中,...

    Android 动态解析布局

    除了使用XML布局外,还可以直接在代码中创建视图对象,如: ```java TextView textView = new TextView(context); textView.setText("Hello, World!"); ``` 然后将这个视图添加到父视图中,以实现动态布局。 四、...

    布局的动态加载

    在一个`Activity`中实现布局切换,可以使用`removeAllViews()`或`removeView()`方法移除当前显示的布局,然后使用上述步骤加载新的布局。也可以使用`ViewSwitcher`、`ViewAnimator`等动画组件平滑地过渡到新的布局...

    LayouInflater

    总结起来,`LayoutInflater`是Android中用于动态加载布局的重要工具,结合按钮的点击事件监听和`Intent`的使用,我们可以实现用户交互并完成页面间的跳转。在实际应用中,这些基础组件和方法是构建功能丰富的Android...

    android侧边栏的滑动,以及实现启动另外的Activity与更换布局

    总结,实现Android侧边栏的滑动效果以及点击后启动新Activity或更换布局,主要涉及SlidingPaneLayout或DrawerLayout的使用,手势识别,Intent的创建,以及动态布局的替换。理解这些核心概念并实践,将有助于构建更加...

Global site tag (gtag.js) - Google Analytics