Hoja inferior Comportamiento necesario para mostrar sólo en el botón de clic?

He implementado la hoja inferior usando appcompat-v7: 23.2.1. Todo está funcionando bien, pero el único problema es que cuando arrastre hacia arriba en el diseño, aparece la hoja inferior. No quiero que la hoja inferior se muestre mientras arrastra hacia arriba En la disposición cuando la hoja inferior no se muestra en la pantalla.

<?xml version="1.0" encoding="utf-8"?> <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:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/DarkGray" tools:context=".bottom_sheets.grid.BottomSheetGridActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <Button android:id="@+id/btnView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Show view" /> </LinearLayout> <LinearLayout android:id="@+id/bottom_sheet1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:layout_marginBottom="8dp" app:layout_behavior="@string/bottom_sheet_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" android:background="#fff" /> </LinearLayout> </android.support.design.widget.CoordinatorLayout> 

Actividad principal

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bottom_grid); Button btnView = (Button) findViewById(R.id.btnView); View bottomSheet = findViewById(R.id.bottom_sheet1); behavior = BottomSheetBehavior.from(bottomSheet); btnView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { behavior.setState(BottomSheetBehavior.STATE_EXPANDED); } }); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); RecyclerView listRecyclerView = (RecyclerView) findViewById(R.id.recyclerView1); listRecyclerView.setHasFixedSize(true); listRecyclerView.setLayoutManager(new LinearLayoutManager(this)); RecyclerItemAdapter recyclerItemAdapter = new RecyclerItemAdapter(createItems(), this); listRecyclerView.setAdapter(recyclerItemAdapter); } 

El código anterior mostrará la hoja inferior al hacer clic, pero también la hoja aparece mientras arrastra hacia arriba en el layout.Is hay algo que me falta up.Please me ayude!

Gracias @oguzhand

  behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change if (newState == BottomSheetBehavior.STATE_DRAGGING) { behavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); 

Ahora puedo desactivar el comportamiento de la hoja inferior cuando no se muestra.

Puede establecer PeekHeight en 0.

 behavior.setPeekHeight(0); 

Bien primero en su

  onCreate 

Después de cartografiar la hoja de fondo, establezca la altura de peekheight en 0 y establezca el estado como colpsed

  mBottomSheet.setPeekHeight(0); mBottomSheet.setState(BottomSheetBehavior.STATE_COLLAPSED); 

Aquí significa que cada vez que la actividad comienza va a ser colapsado como predeterminado! Entonces apenas maneje la llamada de vuelta la fijó y la desarmó en el ir

  behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // react to events switch(newState){ case BottomSheetBehavior.STATE_COLLAPSED: mBottomSheet.setPeekHeight(0); break; case case BottomSheetBehavior.STATE_EXPANDED: mBottomSheet.setPeekHeight(400); //then do your other staff here } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.