我试图使用floatingactionbutton元素,但它不会在UI布局中浮动,浮动按钮占据布局的一部分而不是在组件上,在我的情况下是一个viewpager,
这是我的布局:
<LinearLayout 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" tools:context="com.frases.frases.FraseMain" android:orientation="vertical"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/appbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" > </android.support.v7.widget.Toolbar> <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed"/> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@android:color/white" /> <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:src="@android:drawable/ic_dialog_email" /> </LinearLayout>
解决方法
这是因为您使用LinearLayout作为根布局.您需要FrameLayout将元素堆叠在一起,并且FAB需要是最后一个子节点,因为它需要保持在每个其他视图之上.
<FrameLayout> <LinearLayout> ... </LinearLayout> <!-- FAB be the last node inside FrameLayout here --> <android.support.design.widget.FloatingActionButton /> </FrameLayout>