Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo implementar Bottom Sheets usando la nueva biblioteca de soporte de diseño 23.2

Google lanzó la nueva actualización a la biblioteca de soporte 23.2 en que agregaron la función de hoja inferior. ¿Puede alguien decir cómo implementar esa hoja inferior usando esa biblioteca.

  • Android Mapview: Fusionar marcadores superpuestos en un nuevo marcador
  • ¿Cómo alinear vistas en el centro de otra línea de base de vistas?
  • Obtener orientación del teléfono, pero fijar la orientación de la pantalla a
  • Eliminar la pantalla de preferencias actuales y volver a la pantalla de preferencias principales
  • Patrón para hacer AsyncTask "procedural"
  • Cómo hacer encabezados de sección pegajosa (como iOS) en Android?
  • Cómo ocultar un elemento en un listview en Android
  • Uso de SQLite desde libGDX en Android
  • Desbordamiento CSS y problema de posicionamiento absoluto en el navegador de Android
  • Aplicación Android Gradle: connectedCheck ejecuta pruebas desde las dependencias
  • RestAdapter (retrofit) no se resuelve en android
  • Do onMeasure en Android devuelve Tamaño incluyendo relleno y margen?
  • 4 Solutions collect form web for “Cómo implementar Bottom Sheets usando la nueva biblioteca de soporte de diseño 23.2”

    Introduzca aquí la descripción de la imagen

    Introduzca aquí la descripción de la imagen

    Utilizar el diseño como a continuación

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout> <android.support.design.widget.CollapsingToolbarLayout> <ImageView/> <android.support.v7.widget.Toolbar/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout> //..... </LinearLayout> </android.support.v4.widget.NestedScrollView> <FrameLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="wrap_content" app:behavior_hideable="true" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> //your bottom sheet layout </LinearLayout> </FrameLayout> <android.support.design.widget.FloatingActionButton/> </android.support.design.widget.CoordinatorLayout> 

    En Actividad

     CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.main_content); // The View with the BottomSheetBehavior View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); final BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change Log.e("onStateChanged", "onStateChanged:" + newState); if (newState == BottomSheetBehavior.STATE_EXPANDED) { fab.setVisibility(View.GONE); } else { fab.setVisibility(View.VISIBLE); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events Log.e("onSlide", "onSlide"); } }); behavior.setPeekHeight(100); 

    Puede seguir las instrucciones que se proporcionan aquí: http://android-developers.blogspot.com/2016/02/android-support-library-232.html

    " Al adjuntar BottomSheetBehavior a un niño View de un CoordinatorLayout (es decir, añadiendo app: layout_behavior =" android.support.design.widget.BottomSheetBehavior "), automáticamente obtendrá la detección de toque apropiada para la transición entre cinco estado … "

     <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="@color/white"> <!-- Your Widgets --> <FrameLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff0000" app:behavior_hideable="true" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Test" /> </FrameLayout> </android.support.design.widget.CoordinatorLayout> 

    Luego de su actividad:

     View bottomSheet = findViewById(R.id.bottom_sheet); BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); bottomSheetBehavior.setState(<desired state>); 

    Gradle: primer uso compile 'com.android.support:design:23.2.0'

    En su diseño

     <include layout="@layout/content_sheet" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bottom_sheet" app:layout_behavior="android.support.design.widget.BottomSheetBehavior" style="@style/Widget.Design.BottomSheet.Modal"> <CalendarView android:layout_width="match_parent" android:layout_height="match_parent"></CalendarView> </FrameLayout> 

    En java

      CoordinatorLayout coordinatorLayout= (CoordinatorLayout) findViewById(R.id.cl_main); final View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); final BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { behavior.setState(BottomSheetBehavior.STATE_EXPANDED ); } }); 

    Puede seguir el tutorial en tutsplus.com https://code.tutsplus.com/articles/how-to-use-bottom-sheets-with-the-design-support-library–cms-26031

     <android.support.design.widget.CoordinatorLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <com.google.android.gms.maps.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" app:uiCompass="true" app:uiMapToolbar="false" /> <android.support.v4.widget.NestedScrollView        android:id="@+id/bottom_sheet"        android:layout_width="match_parent" app:behavior_peekHeight="100dp" app:behavior_hideable="true"        android:layout_height="350dp"        android:clipToPadding="true"        android:background="@android:color/holo_orange_light"        app:layout_behavior="android.support.design.widget.BottomSheetBehavior"        >        <TextView            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="@string/ipsum"            android:padding="16dp"            android:textSize="16sp"/>    </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout> 

    Si quieres que se descarte, asegúrate de añadir la app:behavior_hideable="true" en la etiqueta.

    Dentro de su actividad usted puede decir:

      BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(findViewById(R.id.bottom_sheet)); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); findViewById(R.id.button).setOnClickListener(p-> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED)); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.