18

在 Android Studio 中创建一个带有导航抽屉的活动会导致它显示在 XML 代码中:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

如果我tools:openDrawer="start"在布局预览中删除 , ,导航抽屉将关闭而不是打开。

我认为这是一个替换属性,类似于android:text可以替换tools:text为在布局预览中放置一些占位符文本。但是当我将其更改为android:openDrawerorapp:openDrawer时,应用程序无法编译,因为它们是未知属性。

所以我想知道它是如何tools:openDrawer工作的,以及它是否在任何地方都有记录。

4

2 回答 2

14

Android 有一个专用的 XML 命名空间,旨在让工具能够在 XML 文件中记录信息,并在打包应用程序时剥离该信息,从而不会影响运行时或下载大小。命名空间 URI 是 http://schemas.android.com/tools并且通常绑定到 tools: 前缀:

这意味着该tools属性由 IDE 使用,而不是在代码功能中使用。

我仍在尝试查找所有tools属性的完整文档。我在任何地方都找不到openDrawer属性。但以下是关于tools

http://tools.android.com/tech-docs/tools-attributes
http://tools.android.com/tips/layout-designtime-attributes


更新

现在可以在此处tools获得所有属性的完整文档。

于 2015-10-26T09:25:45.057 回答
13

它使导航抽屉在 Android Studio 的预览屏幕上可见,本质上模仿了用户在屏幕上滑动抽屉。

如果没有此属性,您将只能看到主屏幕的内容视图。

我还没有尝试过,但我怀疑用“开始”代替“结束”会使屏幕右侧的抽屉打开(假设当然有一个)。

于 2015-11-07T11:38:32.173 回答