android中的Inflater
16lz
2021-01-23
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
更多相关文章
- CreateProcess error = 2,系统找不到指定的文件
- Android 文件管理器 Android文件管理器源代码
- Android创建隐藏文件或者文件夹
- Android中的File文件存储及读取file中的Bitmap
- Android利用drawable文件夹自定义控件背景、样式
- Android改变文件的权限