/* 传统的方式 */
// 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加载窗体布局文件
分享到:
相关推荐
在给定的文件"ZLibUtils.java"中,我们可以预见到它可能包含了用于压缩和解压缩的实用方法,封装了上述的Deflater和Inflater使用流程。这些方法可以方便地在项目中复用,提高代码的可读性和维护性。 总之,Deflater...
要实现网格布局,我们需要使用GridView或者结合使用ListView和GridLayout。由于标题提到的是“ListView的网格视图”,我们将主要讨论使用GridView的情况。GridView是一个二维的列表视图,可以设置每行的列数,从而...
转载的三种inflater的用法,主要是dialog、fragment会用到。
以上就是使用Fragment实现横竖屏布局的基本流程。通过这种方式,你可以根据设备的屏幕方向提供不同的用户体验,同时充分利用Fragment的灵活性来管理Activity中的多个屏幕区域。在实际开发中,还可以结合Android的...
标题“listview实现悬浮布局”指的是如何让某个视图在ListView滚动时保持固定在屏幕顶部,这通常用于实现类似天气预报、导航栏等需要常显的功能。以下将详细介绍如何在ListView中实现这种悬浮布局。 首先,我们可以...
第一个demo可能使用了`LayoutInflater`类来实现动态加载布局。`LayoutInflater`可以从XML布局文件中创建视图对象,然后将其添加到父视图中。例如: ```java LayoutInflater inflater = (LayoutInflater) context....
除了基本的视图组件,你还可以创建更复杂的布局结构,比如嵌套视图,或者使用`RecyclerView`等组件来实现列表或网格布局的动态加载。同时,你还可以结合数据绑定和MVVM模式,使动态加载的布局更加数据驱动。 总的来...
在Android开发中,动态添加布局和实现点击事件是常见的需求,尤其在创建自定义列表、网格视图或者根据数据动态生成界面时。本教程将详细讲解如何实现这一功能,并结合在线图片加载及预览功能来进一步阐述。 首先,...
下面将详细介绍动态加载布局的基本原理、实现方法以及在实际应用中的使用场景。 一、动态加载布局基本原理 动态加载布局基于Android的View类和LayoutInflater类。View是Android界面的基本元素,LayoutInflater则...
总的来说,Android开发中布局的设计和实现是关键的一环。理解如何在Java代码中编写布局和如何引入XML布局可以帮助您根据项目需求选择最适合的方法。无论是动态布局还是XML布局,都有其应用场景,合理利用两者可以...
总结来说,"022 UI 布局之线性布局-动态生成与LayoutInflater"涵盖了Android开发中的重要概念,包括线性布局的使用、动态生成视图以及利用LayoutInflater优化布局加载。理解并熟练运用这些技巧,将有助于构建更加...
动态加载布局的优点在于可以实现动态UI,比如在用户触发某个事件后添加新的组件,或者根据网络数据创建可变的视图。这种方式对于创建复杂的、数据驱动的界面特别有用,如列表视图、网格视图等。 总之,Activity中用...
本文将深入探讨如何实现"android 动态添加布局",并结合"FlowTagLayoutDemo-master"这个示例项目,提供一个实际的动态添加item布局以及动态更改布局尺寸的方法。 首先,我们要理解动态添加布局的基本原理。在...
本教程将详细解释如何在ListView中实现加载不同布局,即“图片文字”与“纯文字”布局交替显示。 首先,我们需要了解ListView的工作原理。ListView通过Adapter类来绑定数据和视图。Adapter就像一个桥梁,连接数据源...
Android inflater 和 findViewById() 的不同点在于,LayoutInflater 是用来实例化 XML 布局文件的,而 findViewById() 是用来获取 XML 布局文件下的具体控件(如 Button、TextView 等)。 在实际开发中,...
除了使用XML布局外,还可以直接在代码中创建视图对象,如: ```java TextView textView = new TextView(context); textView.setText("Hello, World!"); ``` 然后将这个视图添加到父视图中,以实现动态布局。 四、...
在一个`Activity`中实现布局切换,可以使用`removeAllViews()`或`removeView()`方法移除当前显示的布局,然后使用上述步骤加载新的布局。也可以使用`ViewSwitcher`、`ViewAnimator`等动画组件平滑地过渡到新的布局...
总结起来,`LayoutInflater`是Android中用于动态加载布局的重要工具,结合按钮的点击事件监听和`Intent`的使用,我们可以实现用户交互并完成页面间的跳转。在实际应用中,这些基础组件和方法是构建功能丰富的Android...
总结,实现Android侧边栏的滑动效果以及点击后启动新Activity或更换布局,主要涉及SlidingPaneLayout或DrawerLayout的使用,手势识别,Intent的创建,以及动态布局的替换。理解这些核心概念并实践,将有助于构建更加...