¿Cómo agregar un botón de acción flotante a la barra de navegación inferior en Android?

Las barras de navegación hacia abajo permiten el movimiento entre los destinos principales en una aplicación. . En este artículo, aprenderemos cómo agregar un botón de acción flotante (FAB) en el medio de la barra de navegación inferior en Android.

How to Add a Floating Action Button to Bottom Navigation Bar in Android?

Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: Agregar dependencia al archivo build.gradle

Dentro de build.gradle (aplicación) agregue Dependencia de diseño de materiales.

implementación ‘com.google.android.material:material:1.3.0-alpha03’

Después de agregar la dependencia del diseño del material, haga clic en Sincronizar ahora .

Paso 3: cambie el tema de la aplicación a Componentes materiales

.xml

XML

<resources>
      
    <!-- Base application theme. -->
    <style name="Theme.Fab_Bottom_app_bar" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="colorPrimary">#0F9D58</item>
        <item name="colorPrimaryVariant">#0F9D58</item>
        <item name="colorOnPrimary">#000</item>
    </style>
  
</resources>

Paso 4: Importar iconos de activos vectoriales

Vaya a res > dibujable (clic con el botón derecho) > nuevo -> activos vectoriales e importe cinco íconos desde allí, a saber, Inicio, Buscar, Persona, Agregar, Configuración. Y la estructura de su proyecto debería verse así después de este paso.

Paso 5: cree elementos de menú que deben mostrarse en la vista de navegación inferior

Vaya a res (clic con el botón derecho) > Nuevo > Archivo de recursos de Android y, en el menú emergente, elija el tipo de recurso en el menú y nombre el archivo bottom_nav_menu . Debe tener un aspecto como este.

Dentro de bottom_nav_menu.xml agregue los elementos que queremos mostrar en la barra inferior de la aplicación. bottom_nav_menu.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  
    <item
        android:id="@+id/home"
        android:icon="@drawable/ic_baseline_home_24"
        android:title="Home" />
  
    <item
        android:id="@+id/Search"
        android:icon="@drawable/ic_baseline_search_24"
        android:title="Search" />
  
    <item
        android:id="@+id/placeholder"
        android:title="" />
  
    <item
        android:id="@+id/Profile"
        android:icon="@drawable/ic_baseline_person_24"
        android:title="Profile" />
  
    <item
        android:id="@+id/Settings"
        android:icon="@drawable/ic_baseline_settings_24"
        android:title="Settings" />
      
</menu>

Paso 6: trabajar con el archivo AndroidManifest.xml

Cambie el tema dentro del archivo AndroidManifest.xml . AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.floatingactionbuttontobottomnavigation">
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
          
        android:theme="@style/Theme.Fab_Bottom_app_bar">
          
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  
</manifest>

Paso 7: trabajar con el archivo activity_main.xml

  • Cambie el diseño raíz a Diseño de coordinador
  • Agregue la barra inferior de la aplicación.
  • Dentro de la aplicación Inferior, la barra agrega la Vista de navegación inferior y agrega los elementos del menú que creamos en el último paso.
  • Agregue el botón de acción flotante.

actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bottomAppBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:fabCradleMargin="10dp"
        app:fabCradleRoundedCornerRadius="10dp"
        app:fabCradleVerticalOffset="10dp">
  
        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigationView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginEnd="16dp"
            android:background="@android:color/transparent"
            app:menu="@menu/bottom_nav_menu" />
  
    </com.google.android.material.bottomappbar.BottomAppBar>
  
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/app_name"
        android:src="@drawable/ic_baseline_add_24"
        app:layout_anchor="@id/bottomAppBar" />
  
</androidx.coordinatorlayout.widget.CoordinatorLayout>

Paso 8: trabajar con el archivo MainActivity.kt

Actividad principal.kt Actividad principal.kt

Kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        bottomNavigationView.background = null
        bottomNavigationView.menu.getItem(2).isEnabled = false
    }
}

Producción

Floating Action Button to Bottom Navigation Bar

Publicación traducida automáticamente

Artículo escrito por introidx y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *