2017-02-16 6 views
0

У меня есть фрагмент внутри действия, и он не является «полноэкранным». В этом фрагменте у меня есть FloatingActionsMenu, и мне бы хотелось: когда я нажимаю на это меню кнопок, и появляются его дочерние элементы, я хочу иметь темный слой с небольшим количеством непрозрачности UNDER всех кнопок с плавающей точкой, но по всему экрану.Как иметь темный слой на весь экран (с непрозрачностью), но под FloatingActionsMenu, который присутствует во фрагменте

Я пытаюсь использовать этот подход: создать собственное диалоговое окно, содержащее мои кнопки, и показать его при нажатии кнопки меню. Это кажется сложным, потому что я должен быть уверен, что кнопки в диалоговом окне находятся в одном и том же положении кнопки в фрагменте. «Есть ли лучший и простой способ сделать это? Спасибо Гиги

+0

Я предлагаю вам иметь этот полупрозрачный слой всегда в иерархии вашего представления, но скрыть его в начале. Когда вы нажимаете элемент действия, переключите видимость полупрозрачного слоя. Теперь к следующему вопросу, как получить этот полупрозрачный слой - пользовательский диалог может быть не самым подходящим. Попробуйте компоновку контейнера, например framelayout с пользовательским фоном (попробуйте, не уверен) – Dibzmania

+0

@Dibzmania благодарит за ваше предложение. Это было бы здорово, но я не знаю, как иметь представление в моем фрагменте (например, FrameLayout) в полноэкранном режиме – Gigi

ответ

1

Взгляните на эту библиотеку:

https://github.com/Clans/FloatingActionButton

<com.github.clans.fab.FloatingActionMenu 
    android:id="@+id/menu_yellow" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="80dp" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginTop="10dp" 
    fab:menu_labels_style="@style/MenuLabelsStyle" 
    fab:menu_labels_showAnimation="@anim/jump_from_down" 
    fab:menu_labels_hideAnimation="@anim/jump_to_down" 
    fab:menu_animationDelayPerItem="0" 
    fab:menu_shadowColor="#444" 
    fab:menu_colorNormal="#FFB805" 
    fab:menu_colorPressed="#F2AB00" 
    fab:menu_colorRipple="#D99200"> 

enter image description here

использовать его:

dependencies { 
    compile 'com.github.clans:fab:1.6.4' 
} 
+0

это хорошо, но я хочу покрыть непрозрачность всего экрана. – Gigi

0

Если вы используете панель инструментов/не ты пение ActionBar, вы должны иметь возможность разместить темный полупрозрачный вид в макете Activity поверх всех других представлений, за исключением меню, а затем изменить видимость этого вида от INVISIBLE до VISIBLE, когда отображается меню.