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.

  • ViewPager dentro de la cuestión del fragmento
  • Finalizar la llamada en android mediante programación
  • ¿Cómo funcionan las columnas unidas implícitas con los datos de los contactos de Android?
  • Cómo cambiar el color de fondo de un mapa de bits transparente guardado
  • Android AutoCompleteTextView con chips
  • ¿Cómo fijar el fondo de imagen de la imagen para el estado diferente?
  • Patrones de uso de la actividad Transición vs Fragmentos dinámicos
  • Android exportar a csv y enviar como adjunto de correo electrónico
  • Poner mi aplicación en la lista de búsqueda de Google Now Phone (Búsqueda global de Android)
  • ¿Cómo conectarse vía HTTPS usando Jsoup?
  • Servicio de Android: ¿vincular o iniciar?
  • ¿Cuál es la diferencia entre los atributos background, backgroundTint, backgroundTintMode en el formato android xml?
  • 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.