android中的Inflater
16lz
2021-12-04
android 提供了一个工具 能够把int 的 *.xml 文件转化为 View 这就是XxxInflater 主要有2种:
* LayoutInflater
* MenuInflater
通常使用:
上述二者仅在 Activity 中才有效!
MenuInflater具体使用方法
比如现在在res目录下创建menu文件夹有一个关于menu的描述文件 menu_item.xml 如下:
现在把它转化为 View.
更复杂一点的menu:
LayoutInflater 和 MenuInflater 的使用基本类似 也是根据int 的 *.xml 文件得到 View 所不同的就是 嵌套原因 所以多了一个参数-ViewGroup 用来表示 父View 比如:在 LinearLayout layout 里面有一个 TextView 且其用tv.xml 描述 那么应该如下使用
LayoutInflater更详细的用法见下面:
http://gundumw100.iteye.com/admin/blogs/825503
* 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
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- Android(安卓)快速选择联系人
- android wpa_supplicant 调试
- Android(安卓)7.0 移除设置中的某些项(辅助功能、流量使用情况、
- 第15天android:使用sqlite
- android新建项目报关于progurad.xml不存在错误