Intereting Posts
Заполните оставшееся пространство с фиксированным соотношением сторон изображения Добавление сенсорного прослушивателя к изображениям на повернутом холсте Как я могу определить, что CollapsingToolbar рухнул? Избегайте активности заставки при нажатии кнопки «Назад» Импортировать com.google.android.gms.location.LocationServices, не удается обновить службы определения местоположения Обновление пользовательского интерфейса Android от обратного вызова firebase IOS-подобный инструмент раскадровки для Android-проекта? Преобразование рамки предварительного просмотра в растровое изображение Как отправить SMS из приложения Android без записи в виде SMS-сообщения устройства? Поддерживает ли Android JDK 6 или 7 Отправить SMS через PhoneGap на Android Android Studio: Ошибка сборки Gradle: 169.254 / 16 | * .169.254 / 16. Будет игнорировать настройки прокси для этих хостов Виджет вкладки всегда имеет в своем роде буквы в android 4.0 Android Studio не совершает GitHub Автозагрузка приложения при зарядке

FloatingActionButton setVisibility () не работает

Я не могу скрыть свой FloatingActionButton . Вот мой код:

XML:

 <CoordinatorLayout> <AppBarLayout android:id="@+id/appbar"> <CollapsingToolbarLayout> <ImageView/> <android.support.v7.widget.Toolbar /> </CollapsingToolbarLayout> </AppBarLayout> <NestedScrollView /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom|right|end"/> </CoordinatorLayout> 

И я звоню:

 fab.clearAnimation(); fab.setVisibility(View.GONE); 

Я пытаюсь скрыть FAB, но кажется, что setVisibility + clearAnimation не работает, если FAB находится в CoordinatorLayout .

Даже если я вызываю fab.clearAnimation , анимация все еще срабатывает. Может кто-нибудь мне помочь?

Если ваша проблема – это анимация, вы можете попробовать недействительность Behavior FAB. Что касается видимости, вы должны аннулировать якорь, который вы установили в своем макете:

 CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); p.setBehavior(null); //should disable default animations p.setAnchorId(View.NO_ID); //should let you set visibility fab.setLayoutParams(p); fab.setVisibility(View.GONE); // View.INVISIBLE might also be worth trying //to bring things back to normal state CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); p.setBehavior(new FloatingActionButton.Behavior()); p.setAnchorId(R.id.appbar); fab.setLayoutParams(p); 

Я столкнулся с одной и той же проблемой. Казалось бы, команда Android от Google не хочет, чтобы вы контролировали видимость, когда FloatingActionButton привязан к AppBarLayout, как обсуждалось в этом выпуске – FloatingActionButton Игнорирует видимость видимости

Похоже, что реальное исправление заключается в том, чтобы обернуть FAB в FrameLayout и установить видимость на обертке, а именно:

 <android.support.design.widget.FrameLayout android:id="@+id/fab_container" android:layout_height="wrap_content" android:layout_width="wrap_content" android:visibility="invisible"> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/fab_icon"/> </android.support.design.widget.FrameLayout> 

Однако вы можете подумать о том, является ли это идеальным поведением. Адвокаты Google рекомендуют, чтобы FAB был видимым сразу после создания экрана. Если вы скрываете его дольше, чем требуется для его анимации, подумайте о том, чтобы отобразить отключенное состояние.