Intereting Posts
Ошибка: не удалось найти: com.android.support:support-v4:20.0.+ Что означает «Не удалось найти информацию о поставщике для android.server.checkin»? Android управляет фрагментами из активности элегантно Отображение другого текста в элементе с прядильщиком, чем выделенный текст, android Метод getFragmentManager () не определен для типа MainActivity Ошибка памяти с изображениями Какие системные изображения следует установить для Android L Developement? Android – настроить Spinner для использования массива Сцена переходного фликера Java.lang.NoSuchMethodError: android.app.Notification $ Builder.build Материальный дизайн layout_scrollFlags значения Как стереть Android-устройство, когда администратор устройства отключен? Можно ли показать / скрыть маркеры в Android Google maps api v2? Как открыть приложение для Android с помощью кнопки facebook и twitter, которая находится в этом приложении Как отключить отображение пейзажа / портрета в мобильном веб-приложении (Android Browser / iOS-Mobile Safari)

Библиотека поддержки Android Design 24.2.1 делает BottomSheet открытым при запуске

После перехода на версию 24.2.1 из библиотеки поддержки Android Design от версии 23.4.0 приложение BottomSheetBehavior перестало работать для меня. BottomSheet показывает как открытый и не закрывается при вызове setState(BottomSheetBehavior.STATE_COLLAPSED) . Это не происходит в 23.4.0 библиотеки Design, где BottomSheetBehaviour работает для меня, как ожидалось.

Что-то изменилось в версии 24, которая требует использования BottomSheetBehavior по-разному?

Вот мой файл макета:

 <?xml version="1.0" encoding="utf-8"?> 

 <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="Open Bottom Sheet" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/close_button" android:text="Close Bottom Sheet" /> </LinearLayout> <LinearLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" android:background="@android:color/holo_green_light" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"/> 

И вот код действия, который я использую:

 public class ScrollingActivity extends AppCompatActivity implements View.OnClickListener { private View m_bottomSheet; private BottomSheetBehavior m_behaviour; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scrolling); m_bottomSheet = findViewById(R.id.bottom_sheet); m_behaviour = BottomSheetBehavior.from(m_bottomSheet); ((Button)findViewById(R.id.button)).setOnClickListener(this); ((Button)findViewById(R.id.close_button)).setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.button: m_behaviour.setState(BottomSheetBehavior.STATE_EXPANDED); break; case R.id.close_button: m_behaviour.setState(BottomSheetBehavior.STATE_COLLAPSED); break; } } 

}

Любой совет будет принят во внимание.

Solutions Collecting From Web of "Библиотека поддержки Android Design 24.2.1 делает BottomSheet открытым при запуске"

 m_behaviour.setPeekHeight(0); 

По умолчанию используется состояние «peek», поэтому, если вы не хотите, чтобы он вообще заглядывал, вам нужно установить высоту заглядания в 0.

  app:behavior_peekHeight="0dp" app:layout_behavior="@string/bottom_sheet_behavior" 

Вы можете установить высоту заглядания в 0dp в макете, не нужно устанавливать ее программно