example - ¿Hay código para Snackbars en Android L o se espera que los implementemos nosotros mismos?
snackbar kotlin (6)
El sitio web de diseño de materiales menciona un nuevo elemento tipo Toast llamado Snackbar: http://www.google.com/design/spec/components/snackbars-and-toasts.html
La documentación del SDK de previsualización de Android L (no se puede enlazar, ya que solo se puede descargar) no tiene ninguna mención de Snackbar en la lista de clases o como modificador en la documentación de la clase Toast. ¿Me estoy perdiendo algo obvio o debo construir mi propio Snackbar.java?
Aquí es una forma sencilla de implementar snackbar en Android
Paso 1. Agrega la biblioteca de soporte 23 y compila tu proyecto con
compile ''com.android.support:appcompat-v7:23.0.1''
Paso 2. Agrega el diseño de coordenadas en tu archivo de actividad
<android.support.design.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:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</android.support.design.widget.CoordinatorLayout>
Paso 3. Ahora agregue el siguiente código en su MainActivity.java para implementar snackbar
public class MainActivity extends AppCompatActivity {
CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
ShowSnack();
}
public void ShowSnack() {
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Snackbar Label", Snackbar.LENGTH_LONG);
snackbar.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Action", Toast.LENGTH_LONG).show();
}
});
snackbar.setActionTextColor(Color.RED);
View snackbarView = snackbar.getView();
snackbarView.setBackgroundColor(Color.DKGRAY);
TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.YELLOW);
snackbar.show();
}
}
Espero que esto funcione para usted.
Para más tutorial de Android por favor siga este blog: Trinity Tuts
FWIW,
Parece que no hay una implementación de Snackbar
en la Vista previa para desarrolladores de L. También he implementado una biblioteca Snackbar con la intención de estar lo más cerca posible de las http://www.google.com/design/spec/components/snackbars-and-toasts.html . Gracias.
Mabye mira esto aquí. http://www.williammora.com/2014/08/snackbar-android-library.html
Supongo que la versión nativa aparecerá en el SDK con el tiempo. Es un poco extraño estoy de acuerdo.
Snackbar es efectivamente solo un Crouton con algunos márgenes. Crouton en su forma actual solo admite la adición al inicio (0º elemento) de un ViewGroup, sin embargo, puede encontrar la mejora "strayan" en Crouton, DownUnderMode, en mi github . Solo tenga en cuenta que la biblioteca oficial Crouton y la versión DownUnderMode están un poco desincronizadas (que se espera que se solucionen en el año 2058 cuando se acepte la solicitud de extracción DownUnderMode).
Usando la librería de diseño podemos implementar para todas las versiones de Android 2.1 en adelante.
Aquí está el código de ejemplo de trabajo http://www.feelzdroid.com/2015/06/snackbar-android-example-using-design-support-library.html .
Si necesitas ayuda, deja un comentario.
Actualización 2015-05-29:
Google lanzó una Biblioteca de soporte de diseño que incluye un Snackbar y otros widgets de Diseño de materiales.
La biblioteca Snackbar mencionada en la respuesta original ahora está en desuso.
Respuesta original
Estoy seguro de que Google eventualmente lo incluirá en un futuro SDK, junto con un botón de acción flotante que también falta en la vista previa del SDK.
Como señaló @friedrich nietzche, implementé una biblioteca para incluir un Snackbar
en su proyecto.
https://github.com/nispok/snackbar
¡Espero eso ayude!