面试题

Tools属性

2019-11-15  本文已影响0人  ArcherZang

Android Studio 支持 tools 命名空间中的多种 XML 属性,这些属性支持设计时功能(例如要在 Fragment 中显示哪种布局)或编译时行为(例如要对 XML 资源应用哪种压缩模式)。在您构建应用时,编译工具会移除这些属性,因此它们不会对 APK 大小或运行时行为产生影响。

要使用这些属性,请将 tools 命名空间添加到您要在其中使用他们的各个 XML 文件的根元素中,如下所示:

错误处理属性

以下属性可帮助抑制 Lint 警告消息。

<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>    
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"       
xmlns:tools="http://schemas.android.com/tools"       
tools:targetApi="14" >    

但是,您应该使用支持库中的 GridLayout

设计时视图属性

以下属性定义了仅会在 Android Studio 布局预览中看到的布局特性。

您还可以使用 tools: 属性来取消将某属性设置为仅用于布局预览。例如,如果您拥有的 FrameLayout 包含多个子元素,但您希望仅在布局预览中看到一个子元素,则可以将其中一个子元素设置为在布局预览中不可见,如下所示:

 <Button  android:id="@+id/button"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="First"  />  <Button  android:id="@+id/button2"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="Second"  **tools:visibility="invisible"** /> 

在设计视图中使用布局编辑器时,您还可以通过 Properties 窗口修改部分设计时视图属性。每个设计时属性都用属性名称旁边的扳手图标进行指示,以便与同名的真实属性区分开。

提示:您还可以从布局编辑器工具栏中选择布局预览的主题。

现在当此 TextView 布局出现在 activity_main 布局内部时,布局预览中会进行显示。

适用于:任何根 <View>
使用者:Android Studio 布局编辑器
此属性用于指定布局预览应该在应用栏中显示的菜单。值可以是一个或多个菜单 ID,以英文逗号分隔(不带 @menu/ 或任何此类 ID 前缀,且不带 .xml 扩展名)。例如:

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"        
    xmlns:tools="http://schemas.android.com/tools"        
    android:orientation="vertical"        
    android:layout_width="match_parent"        
    android:layout_height="match_parent"        
    tools:menu="menu1,menu2" />    
资源压缩属性

通过以下属性,您可以启用严格引用检查,并在使用资源压缩时声明保留还是舍弃某些资源。
要启用资源压缩,请在 build.gradle 文件中将 shrinkResources 属性(以及适用于代码压缩的 minifyEnabled)设置为 true。例如:

android {        
    ...        
    buildTypes {            
        release {                
            shrinkResources true                
            minifyEnabled true   
            proguardFiles getDefaultProguardFile('proguard-android.txt'),  'proguard-rules.pro'            
        }        
    }    
}    
上一篇下一篇

猜你喜欢

热点阅读