`

android中的Inflater

阅读更多
android 提供了一个工具 能够把int 的 *.xml 文件转化为 View 这就是XxxInflater 主要有2种:
* LayoutInflater
* MenuInflater
通常使用:
MenuInflater mInflater = getMenuInflater();
LayoutInflater lInflater = getLayoutInflater();

上述二者仅在 Activity 中才有效!

MenuInflater具体使用方法
比如现在在res目录下创建menu文件夹有一个关于menu的描述文件 menu_item.xml 如下:
<?xml version="1.0" encoding="utf-8"?>    
<menu xmlns:android="http://schemas.android.com/apk/res/android">    
    <item     
        android:id="@+id/Item_1"     
        android:title="Item_1"  
        android:icon="@android:drawable/ic_menu_add"
    />    
    <item     
        android:id="@+id/Item_2"     
        android:title="Item_2" />    
    <item     
        android:id="@+id/Item_3"     
        android:title="Item_3"   
        android:enabled="false"  />    
</menu>  

现在把它转化为 View.
public boolean onCreateOptionsMenu(Menu menu) { 
super.onCreateOptionsMenu(menu); 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.layout.menu_item, menu); 
return true; 
}


public boolean onOptionsItemSelected(MenuItem item) {     
      switch (item.getItemId()) {     
      case R.id.Item_1:                   
          break;     
      case R.id.Item_2:     
          break;     
      case R.id.Item_3:     
          break;      
     }     
     return super.onOptionsItemSelected(item);     
} 

更复杂一点的menu:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Play" android:id="@+id/media_play"
  android:icon="@android:drawable/ic_media_play"/>
<item android:title="Pause" android:id="@+id/media_pause"
  android:icon="@android:drawable/ic_media_pause"/>
<item android:title="File" android:id="@+id/file">
<menu>
<item android:title="Open..." android:id="@+id/file_open"/>
<item android:title="Save" android:id="@+id/file_save"/>
<item android:title="Save as" android:id="@+id/file_saveas"/>
<item android:title="Exit" android:id="@+id/file_exit"/>
</menu>
</item>
<item android:title="Edit" android:id="@+id/edit">
<menu>
<group>
<item android:title="Copy" android:id="@+id/edit_copy"/>
<item android:title="Paste" android:id="@+id/edit_paste"/>
<item android:title="Cut" android:id="@+id/edit_cut"/>
<item android:title="Delete" android:id="@+id/edit_delete"/>
</group>
</menu>
</item>
</menu>

LayoutInflater 和 MenuInflater 的使用基本类似 也是根据int 的 *.xml 文件得到 View 所不同的就是 嵌套原因 所以多了一个参数-ViewGroup 用来表示 父View 比如:在 LinearLayout layout 里面有一个 TextView 且其用tv.xml 描述 那么应该如下使用
LayoutInflater inflater = getLayoutInflater(); 
inflater.inflate(R.layout.tv,layout);

LayoutInflater更详细的用法见下面:
http://gundumw100.iteye.com/admin/blogs/825503
分享到:
评论

相关推荐

    Android inflater 用法及不同点

    在 实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。这篇文章主要介绍了Android inflater 用法,需要的朋友可以参考下

    Android中LayoutInflater.inflater()的正确打开方式

    主要给大家介绍了关于Android中LayoutInflater.inflater()的正确打开方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    Android代码-Android-FloatWindow

    1.首先在AndroidManifest.xml中添加使用权限: uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 2.二行代码实现自定义弹窗view View contentView = inflater.inflate(R.layout.layout_...

    Android学习资料

    包括:android gravity 和 android layout_Gravity,Bundle,ContentResolver,cursor,Fragments ,Fragments,inflater ,Fragment,数据查询query函数参数解析, 【Cursor】 类的介绍,android 获得通话记录,Handler ,...

    谈谈Android里的Context的使用

    大家好,今天给大家分享一下Android里的Context的一些用法. 这里大致可以分为两种:一是传递Context参数,二是调用全局的Context. 其实我们应用启动的时候会启动Application这个类,这个类是在AndroidManifest.xml...

    Android代码-BubblePopupWindow

    Android 实现各个方向的气泡弹窗,可控制气泡尖角偏移量。 截图 依赖 dependencies { compile 'com.yuyh.bubble:library:1.0.0' } 使用 默认弹窗BubblePopupWindow leftTopWindow = new BubblePopupWindow...

    android顶部滑动导航

    private LayoutInflater inflater; private TabFragmentPagerAdapter adapter; private int tageDistance = 0; private int initWidth; public static String[] tabTitle = {"全部", "南京", "上海", "南方", ...

    Android代码-AndroidSkinAnimator

    了解过换肤框架的同学知道,利用setFactory(LayoutInflater inflater, LayoutInflaterFactory factory)可以在不更新布局文件的情况下替换布局中View为自定义View,并且对开发者透明。利用这个原理我们可以把原生的...

    Floating-Window-Android:使用窗口管理器,布局充气器和弹出窗口类在android中制作浮动窗口服务

    浮动窗口-Android 使用窗口管理器、layout inflater 和 popupwindow 类在 android 中制作浮动窗口服务。

    Android控件View打造完美的自定义侧滑菜单

    一、概述  在App中,经常会出现侧滑菜单,侧滑滑出View等效果,虽然说Android有很多第三方开源库,但是实际上咱们可以自己也写一个自定义的侧滑View控件,其实不难,...首先从布局文件中inflater出来一个menuView,然

    炫舞吧 android 游戏开发

    android.os.Process.killProcess(android.os.Process.myPid()); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);...

    安卓单任务多线程任意断点下载【源码】.rar

    安卓Android单任务多线程任意断点下载【源码】,包括了一个可复用的文件下载服务类用于获取实时更新每条线程已经下载的文件长度,可实现多任务下载  1.创建XML文件,将要生成的View配置好  2.获取系统服务...

    Android中findViewById获取控件返回为空问题怎么解决

    在Android程序中,有时候需要加载非原来activity中xml布局中的控件,来使Android程序的界面更加丰富。  我本身是在使用ViewFlipper中遇到的问题。 public void onCreate(Bundle savedInstanceState) { super....

    LayouInflater

    android LayouInflater 页面跳转 button点击

    Android 中级应用 一 LayoutInflater 的使用

    LayoutInflater Layout 与 Inflater[扩充]两个单词的合并,可以理解为:当前Activity 布局的扩充.

    Android SimpleAdapter适配器使用详解

    Android的AdapterView用的比较多,ListView,GridView,Spinner等,原生的BaseAdapter对ViewHolder没有支持,每次都要,定义内部类,inflater根布局,对item内部view设置clicklistener并转发到adapter的调用者等。...

    可以滑动页面的项目

    Note: activity of manifest need to override the configured theme: android: windowIsTranslucent, otherwise slide open the background is black. &lt;item name="android:windowIsTranslucent"&gt;true If ...

    Android LayoutInflater加载布局详解及实例代码

    对于有一定Android开发经验的同学来说,一定使用过LayoutInflater.inflater()来加载布局文件,但并不一定去深究过它的原理,比如 1.LayoutInflater为什么可以加载layout文件? 2.加载layout文件之后,又是怎么变成供...

Global site tag (gtag.js) - Google Analytics