Barra de navegaciónNavigation Bar

Android 4 introdujo una nueva característica de interfaz de usuario de sistema denominada una barra de navegación, que proporciona controles de navegación en los dispositivos que no incluyen los botones de hardware para inicio, atrás , y menú.Android 4 introduced a new system user interface feature called a Navigation Bar, which provides navigation controls on devices that don't include hardware buttons for Home, Back, and Menu. Captura de pantalla siguiente muestra la barra de navegación de un dispositivo Nexus primos:The following screenshot shows the Navigation Bar from a Nexus Prime device:

Ejemplo de una barra de navegación de AndroidExample of an Android navigation bar

Existen varias nuevas marcas que controlan la visibilidad de la barra de navegación y sus controles, así como la visibilidad de la barra de sistema que se introdujo en Android 3.Several new flags are available that control the visibility of the Navigation Bar and its controls, as well as the visibility of the System Bar that was introduced in Android 3. Las marcas se definen en el Android.View.View clase y se enumeran a continuación:The flags are defined in the Android.View.View class and are listed below:

  • SystemUiFlagVisible – Se hace visible la barra de navegación.SystemUiFlagVisible – Makes the Navigation Bar visible.
  • SystemUiFlagLowProfile – DIMS controles en la barra de navegación.SystemUiFlagLowProfile – Dims out controls in the Navigation Bar.
  • SystemUiFlagHideNavigation – Oculta la barra de navegación.SystemUiFlagHideNavigation – Hides the Navigation Bar.

Estas marcas se pueden aplicar a cualquier vista de la jerarquía de vistas estableciendo el SystemUiVisibility propiedad.These flags can be applied to any view in the view hierarchy by setting the SystemUiVisibility property. Si varias vistas tienen esta propiedad establecida, el sistema las combina con una operación OR y los aplica siempre y cuando la ventana en la que se establecen las marcas conserva el foco.If multiple views have this property set, the system combines them with an OR operation and applies them so long as the window in which the flags are set retains focus. Cuando se quita una vista, también se quitarán los indicadores que ha establecido.When you remove a view, any flags it has set will also be removed.

El ejemplo siguiente muestra una aplicación sencilla al hacer clic en cualquiera de los botones que cambia el SystemUiVisibility:The following example shows a simple application where clicking any of the buttons changes the SystemUiVisibility:

Capturas de pantalla que muestra Visible, el perfil de baja y SystemUiVisibility ocultaScreenshots demonstrating Visible, Low Profile, and Hidden SystemUiVisibility

El código para cambiar el SystemUiVisibility establece la propiedad en un TextView en cada botón, haga clic en controlador de eventos como se muestra a continuación:The code to change the SystemUiVisibility sets the property on a TextView from each button's click event handler as shown below:

var tv = FindViewById<TextView> (Resource.Id.systemUiFlagTextView);
var lowProfileButton = FindViewById<Button>(Resource.Id.lowProfileButton);
var hideNavButton = FindViewById<Button> (Resource.Id.hideNavigation);
var visibleButton = FindViewById<Button> (Resource.Id.visibleButton);
           
lowProfileButton.Click += delegate {
    tv.SystemUiVisibility =
        (StatusBarVisibility)View.SystemUiFlagLowProfile;
};
           
hideNavButton.Click += delegate {
    tv.SystemUiVisibility =
       (StatusBarVisibility)View.SystemUiFlagHideNavigation;        
};
           
visibleButton.Click += delegate {
    tv.SystemUiVisibility = (StatusBarVisibility)View.SystemUiFlagVisible;
}

Además, un SystemUiVisibility cambiar genera un SystemUiVisibilityChange eventos.Also, a SystemUiVisibility change raises a SystemUiVisibilityChange event. Igual que la configuración de la SystemUiVisibility propiedad, un controlador para el SystemUiVisibilityChange eventos se pueden registrar para cualquier vista de la jerarquía.Just like setting the SystemUiVisibility property, a handler for the SystemUiVisibilityChange event can be registered for any view in the hierarchy. Por ejemplo, el código siguiente usa el TextView instancia para registrarse en el evento:For example, the code below uses the TextView instance to register for the event:

tv.SystemUiVisibilityChange +=
  delegate(object sender, View.SystemUiVisibilityChangeEventArgs e) {
        tv.Text = String.Format ("Visibility = {0}", e.Visibility);
  };