1

我可以将FAB按钮完美地放在布局的右下角。但我希望FAB按钮被放置在工具栏和框架布局的交叉点处,我正在使用它作为片段。浮动动作按钮留在工具栏和框架之间,显示片段

下面是我的activity_main.xml,它是用DrawerLayout设计的。我曾尝试与CoordinatorLayout但一些如何与我目前的布局框架内,可以如在这个环节上我不能放在FAB按钮

http://i.stack.imgur.com/6RjOq.jpg

http://i.stack.imgur.com/xCxE0.png

我activity_main.xml中

<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/viewA"> 
    <LinearLayout 
     android:id="@+id/container_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar" /> 
    </LinearLayout> 

    <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <FrameLayout 
      android:id="@+id/container_body" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|right" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="16dp" 
      app:fabSize="normal" 
      android:src="@mipmap/ic_action_stop" 
      app:backgroundTint="@color/colorPrimaryDark" 
      app:rippleColor="#F06292" 
      app:elevation="6dp" 
      app:pressedTranslationZ="12dp"/> 

    </FrameLayout> 

</LinearLayout> 
<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_height="match_parent" 
    android:layout_width="wrap_content" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/drawer" 
    /> 

我不想在container_body中显示的片段中滚动内容,但只希望制作按钮显示工具栏和框架的中间右侧。

我特地到其他计算器后 How can I add the new "Floating Action Button" between two widgets/layouts

但我无法弄清楚,我应该把FrameLayout里显示的分段数据。

谢谢Danail参考教程给了一些帮助。

现在FAB按照我的需要在工具栏和片段之间显示。

更新activity_main.xml中低于

SOLUTION

<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="150dp"> 

    <LinearLayout android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/viewA" 
     android:orientation="vertical"> 

     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar" /> 

     <LinearLayout 
      android:id="@+id/viewB" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <FrameLayout 
       android:id="@+id/container_body" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       /> 
      </LinearLayout> 

    </LinearLayout> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="12dp" 
     android:clickable="true" 
     android:src="@mipmap/ic_action_play" 
     app:layout_anchor="@id/toolbar" 
     app:layout_anchorGravity="bottom|right|end" 
     app:fabSize="normal" 
     app:backgroundTint="@color/colorPrimaryDark" 
     app:rippleColor="#F06292" 
     app:elevation="6dp" 
     app:pressedTranslationZ="12dp"/> 

</android.support.design.widget.CoordinatorLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_height="match_parent" 
    android:layout_width="wrap_content" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/drawer" 
    /> 

这被示出根据需要和在图像链接所示FAB。

回答

1

指南中有关于this的有用信息。仔细看看“在页眉中嵌入FloatingActionButton”部分。

总结: 您应该使用FAB的layout_anchorlayout_anchor_gravity属性。在你的情况下,工具栏将是“锚点”,你应该使用layout_anchor_gravity="bottom|right|end"

相关问题