Android清单文件详解(五)----<application>的属性详解(三)

简介: Android清单文件详解(五)----<application>的属性详解(三)

18.android:uiOptions


该属性用于开启Activity UI附加的扩展导航栏。在配置这个属性时,可供选择的值必须是下表所示的两个值中的一个。

描述
none 关闭扩展栏。如果没有配置android:uiOptions属性,此为默认值
splitActionBarWhenNarrow 当在横向空间受到限制时,比如当手机处于纵向模式,在屏幕底部添加一个状态栏来显示ActionBar中的动作项。只有少数的Action项会出现在动作栏中。操作栏将被分成顶部导航部分和用于动作项的底部栏。这就保证了有一个合理数量的空间可用。


需要说明的是,android:uiOption属性是自Android4.0以后才提供的。因此,在需要使用该属性的时候,孙弱保证使用Android4.0以后的SDK(API14)


下面举例说明如何使用这个属性。


①就拿刚刚新建的AppilcationTest项目来说,在Androidmanifest.xml中的<application>节点中加入如下代码:


android:uiOptions="splitActionBarWhenNarrow"


②在工程的/res.menu目录下新建一个菜单配置文件my_menu_cfg.xml。在该文件中配置如下代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item1" android:title="show_item1" android:showAsAction="always|withText" android:icon="@drawable/abc_ic_menu_copy_mtrl_am_alpha"></item>
    <item android:id="@+id/item2" android:title="show_item2"></item>
    <item android:id="@+id/item3" android:title="show_item3" android:showAsAction="always|withText" android:icon="@drawable/abc_ic_menu_selectall_mtrl_alpha"></item>
</menu>


需要注意的是,我们把要显示为Action项的菜单项的android:showAsAction设置为always。


③新建一个Activity类,名为UIOptionActivity,实现onCreateOptionsMenu()方法加载my_menu_cfg.xml菜单布局,代码如下:

public class UIOptionActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.my_menu_cfg,menu);
        return super.onCreateOptionsMenu(menu);
    }
}


④编译运行项目,运行结果如下图。


可以发现,屏幕底部出现了状态栏。


这样刚刚配置的android:showAsAction的项目就显示出来了,剩余部分包含在框中的超出菜单里,单击它时才会显示出来。大家可以自行尝试一下去掉这个属性的效果。


在不需要操作栏的时候,只需要把andriod:uiOption设置为none或者onCreateOptionmenu()方法空实现。


69.png


19.android:vmSafeMode


此属性用于指示虚拟机是否在安全模式下运行,它是一个布尔值,当没有配置它的时候,其默认值为false。示例代码如下:

if(sa.getBoolean(com.android.internal.R.styleable.AndroidManifestApplication_vmsafeMode,false)){
ai.flags|=ApplicationInfo.FLAG_VM_SAFE_MODE;
}


20.android:largeHeap


此属性指示应用程序是否使用一个比较大的堆创建,它是一个布尔值,在没有配置的情况下,它的默认值是false,示例代码如下:

if(sa.getBoolean(com.android.internal.R.styleable.AndroidManifestApplication_largeHeap,false)){
ai.flags|=ApplicationInfo.FLAG_LARGE_HEAP;
}


至此,我们介绍完了<application>节点支持的所有节点的用法,代码实现,含义及用法。在开发应用程序的时候,开发者应该根据具体需求有选择的使用这些属性,以使应用程序更高效地运行。


要注意的是,作为应用程序的根节点,<application>节点必须包括在<manifest>节点中。而<application>节点本身还包括<activity>,<activity-alias>,<service>,<receiver>,<provider>和<uses-library>这几个节点。

相关文章
|
5天前
|
Shell API Android开发
android queries属性
android queries属性
15 2
|
1天前
|
Android开发
android string.xml文件中的整型和string型代替
android string.xml文件中的整型和string型代替
|
1天前
|
Java Android开发
Android开发--Intent-filter属性详解
Android开发--Intent-filter属性详解
|
4天前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
9 0
|
4天前
|
XML Android开发 数据安全/隐私保护
android 11后文件读写访问权限申请
android 11后文件读写访问权限申请
11 0
|
4天前
|
JSON Android开发 数据格式
Android 打开系统文件管理器,并返回选中文件的路径
Android 打开系统文件管理器,并返回选中文件的路径
11 0
|
5天前
|
Android开发 C++
Android 系统属性(SystemProperties)
Android 系统属性(SystemProperties)
11 1
|
5天前
|
Android开发
通过反射方式获取Android设备系统属性
通过反射方式获取Android设备系统属性
16 2