SlidingDrawer es un requisito común en los móviles Android para ver el contenido cuando sea necesario deslizándolo tanto horizontal como verticalmente. En este artículo, echemos un vistazo a Sliding Drawer, que se utiliza para ocultar el contenido de la pantalla y permite al usuario arrastrar un controlador para traer el contenido a la pantalla cuando sea necesario de una manera muy fácil de usar. El cajón deslizante es un widget especial y contiene dos vistas para niños, una para manejar que el usuario arrastra y la otra es el contenido adjunto al mango que arrastró junto con él.
Métodos importantes de SlidingDrawer
Al ser este el cajón deslizante, podemos arrastrar y ver el contenido siempre que sea necesario. Entonces, básicamente, abrir y cerrar son los métodos muy importantes asociados con eso. En nuestro ejemplo, al usar eso, tengamos un pequeño código de demostración. Además de eso, otros métodos importantes también están allí y también se discuten aquí. Para inicializar (o instanciar) una variable de SlidingDrawer, debemos hacer lo siguiente
Java
// First initiate the SlidingDrawer, simpleSlidingDrawer1 // is the id of SlidingDrawer defined in activity_main.xml // Here using simpleSlidingDrawer1 as object and // this is used throughout next SlidingDrawer simpleSlidingDrawer1 = (SlidingDrawer) findViewById (R.id.simpleSlidingDrawer1);
Métodos |
Descripción |
---|---|
abierto() | Para abrir el cajón inmediatamente, abrimos el cajón al hacer clic en Ver (Botón, Vista de texto, etc.) |
cerca() | Para cerrar el cajón inmediatamente, cerramos el cajón al hacer clic en Ver (Botón, Vista de texto, etc.) |
animarAbrir() |
Este método es similar al método open() pero con animación. También podemos usar este método al hacer clic en una vista (botón o cualquier otra vista) |
animarCerrar() |
Este método es similar al método close() pero con animación. También podemos usar este método al hacer clic en una vista (botón o cualquier otra vista) |
está abierto() |
En muchos lugares, es posible que necesitemos verificar si el cajón está abierto o no. El resultado es un valor booleano y, si es verdadero, se abre el cajón |
cerrar() |
Si es necesario deshabilitar los eventos táctiles, podemos usar este método. Aunque es un escenario raro, esta instalación también está disponible y se usa para bloquear el SliderDrawer e ignora los eventos táctiles. También podemos usar este método al hacer clic en una vista (botón o cualquier otra vista) |
desbloquear() |
Si se bloquea accidentalmente, es decir, los eventos táctiles están deshabilitados, debe desbloquearse. Para eso, podemos usar este método. También podemos usar este método al hacer clic en una vista (botón o cualquier otra vista) |
Java
// important methods are discussed here // open the Sliding Drawer simpleSlidingDrawer1.open(); // close the Sliding Drawer simpleSlidingDrawer1.close(); // open the Sliding Drawer but with an animation simpleSlidingDrawer1.animateOpen(); // close the Sliding Drawer but with an animation simpleSlidingDrawer1.animateClose();
Es posible que debamos verificar programáticamente si SlidingDrawer está abierto o cerrado. Para eso, podemos usar el siguiente conjunto de métodos.
Java
// check whether the slider is opened or not and // depends upon that we can do rest of the calculations Boolean isSliderSrawerOpen = simpleSlidingDrawer1.isOpened(); // If we do not want touch events to occur, set this simpleSlidingDrawer1.lock(); // In order to process the touch events // if accidentally locked or due to some requirement got locked simpleSlidingDrawer1. unlock();
Métodos de establecimiento:
setOnDrawerCloseListener(OnDrawerCloseListeneronDrawerCloseListener):
Este método se utiliza para establecer el oyente que recibe la notificación cuando el cajón se cierra. El nombre del método se explica por sí mismo.
Java
simpleSlidingDrawer1.setOnDrawerCloseListener( new SlidingDrawer.OnDrawerCloseListener() { @Override public void onDrawerClosed() { // Suppose you can give a toast message or when // drawer closes need to navigate to another // event etc., So required steps are done here } });
setOnDrawerOpenListener(OnDrawerOpenListeneronDrawerOpenListener):
Este método se utiliza para configurar el oyente que recibe la notificación cuando se abre el cajón. El nombre del método se explica por sí mismo.
Java
simpleSlidingDrawer1.setOnDrawerOpenListener( new SlidingDrawer.OnDrawerOpenListener() { @Override public void onDrawerOpened() { // As per your requirement, add code here. } });
setOnDrawerScrollListener(OnDrawerScrollListeneronDrawerScrollListener):
Este método se utiliza para configurar el oyente que recibe la notificación cuando el cajón inicia o finaliza un desplazamiento. El nombre del método se explica por sí mismo.
Java
simpleSlidingDrawer1.setOnDrawerScrollListener( new SlidingDrawer.OnDrawerScrollListener() { @Override public void onScrollStarted() { // Scroll is necessary for large data to view, // so necessary code is required here } @Override public void onScrollEnded() { // add code here for the scroll ended. } });
Atributos importantes de SlidingDrawer
Para identificar un SliderDrawer, ciertos atributos son muy obligatorios.
Atributos |
Descripción |
---|---|
Identificación |
El atributo id se utiliza para identificar de forma única un SliderDrawer. En todo su código, con esta identificación, Se accede a SliderDrawer. Este es el campo clave y al mantener significativo y nombres fáciles de usar para id, los futuros desarrolladores pueden entender y mantener fácilmente el código |
resolver |
Este atributo se utiliza como identificador del hijo que representa el tirador del cajón. Esto siempre está visible en la aplicación. |
contenido |
Aquí puede definir el contenido del cajón. Para que los contenidos sean visibles, uno puede hacer clic en el mango y verlo. métodos open() y close() están ahí para hacer que el contenido sea visible e invisible. |
orientación |
La orientación predeterminada es vertical. A veces puede haber un requisito para hacer la orientación sea horizontal. Este atributo hace que la facilidad para ello. |
rotación | Depende del requisito, la vista difiere. Algunos prefieren tener en 90/180/270/360 grados etc. |
Ejemplo
Veamos el código de ejemplo completo para el contenido de video provisto. qué
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 Java como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Esto generalmente viene en la carpeta res> diseño . Puede haber necesidades para tener diferentes diseños para diferentes tamaños de móviles. Pero generalmente se prefiere la carpeta de diseño. actividad_principal.xml
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="fill_parent"> <SlidingDrawer android:id="@+id/simpleSlidingDrawer1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:content="@+id/content1" android:handle="@+id/handle1" android:orientation="horizontal" android:rotation="180"> <!-- Let us define the button --> <Button android:id="@id/handle1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#0f0" android:rotation="270" android:text="Open" android:textColor="#fff" /> <!-- layout for the content of the SlidingDrawer --> <LinearLayout android:id="@id/content1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:rotation="180"> <!-- DEFINE ALL YOUR CONTENT,WIDGETS HERE WHICH YOU WANT TO ADD IN SLIDING DRAWER LAYOUT. --> <ListView android:id="@+id/simpleListView1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </SlidingDrawer> </LinearLayout>
Paso 3: Cree un nuevo archivo de recursos de diseño
Vaya a aplicación > res > diseño > haga clic con el botón derecho en > Nuevo > Archivo de recursos de diseño y cree un nuevo archivo de diseño y asígnele el nombre list_item.xml. Este XML va a contener el contenido que está especificando en el ArrayAdapter . Declarémoslos en LinearLayout con una orientación vertical para que los contenidos se puedan desplazar hacia arriba y hacia abajo en dirección vertical.
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- TextView for the list item --> <TextView android:id="@+id/name1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" android:textColor="#0f0" /> </LinearLayout>
Paso 4: trabajar con el archivo MainActivity.java
Ahora vaya a la carpeta java y en MainActivity.java y proporcione la implementación al SlidingDrawer. MainActivity.java Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.SlidingDrawer; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { String[] nameArray = {"Bitcoin", "Ethereum", "Litecoin", "IOTA", "Libra", "Monero", "EOS", "NEO", "ATOM", "Tether", "XRP", "Bitcoin Cash", "Binance Coin", "REN", "Bitcoin SV", "USD Coin", "Stellar", "Tezos", "Dash", "Zcash"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initiate the SlidingDrawer SlidingDrawer simpleSlidingDrawer1 = (SlidingDrawer) findViewById(R.id.simpleSlidingDrawer1); // initiate a Button which is used for // handling the content of SlidingDrawer // We can able to have open and close // methods for this handleButton final Button handleButton = (Button) findViewById(R.id.handle1); // initiate the ListView that is used for content of Sl.idingDrawer // adapter for the list view. As all are text, // it is defined as ArrayAdapter<String> // Your cryptocurrency items are going to be displayed via this // view using below cryptocurrency ArrayAdapter ListView simpleListView1 = (ListView) findViewById(R.id.simpleListView1); // Below syntax is for defining ArrayAdapter ArrayAdapter<String> cryptocurrencyArrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, R.id.name1, nameArray); // set an adapter to fill the data in the ListView simpleListView1.setAdapter(cryptocurrencyArrayAdapter); // implement setOnDrawerOpenListener event, // name itself suggests that // we need to write code for drawer opening simpleSlidingDrawer1.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() { @Override public void onDrawerOpened() { // When drawer is opened, we may need // to indicate user that close option // is available, so just setting text to close. // But required functionality can be done here handleButton.setText("Close"); } }); // implement setOnDrawerCloseListener event, // name itself suggests we need to write close events simpleSlidingDrawer1.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() { @Override public void onDrawerClosed() { // if close is done, we should have the option to open. // according to the requirement, // carry out necessary steps for close handleButton.setText("Open"); } }); } }
Salida: ejecutar en el emulador
Al configurar el código en el estudio de Android, podemos ver que SlidingDrawer funciona correctamente. Adjunto el pequeño video del mismo. Seguramente esta función es muy necesaria en muchas aplicaciones y disfrutará usándola. El video adjunto será útil para visualizarlo y disfrutarlo simulando el mismo en sus aplicaciones.
Publicación traducida automáticamente
Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA