LinearLayout内的FAB位于片段上方

时间:2018-08-10 14:43:53

标签: android android-layout floating-action-button

在我的布局文件中,我有一个LinearLayout作为父布局,其中我已经使用appBarLayout显示了ImageView,并且有Tablayout,其中包含listview。我需要在所有这些布局中显示一个FloatingActionButton。

当我将FAB包含在LinearLayout中时,它不会显示FAB。

如果我使用FrameLayout而不是LinearLayout作为父布局,它将显示fab,但会扭曲imageview并使所有其他视图消失(请检查图像:https://drive.google.com/file/d/1OTqXIMVGh_7sRtkLYu7Snn0fTP-e4VCE/view?usp=sharing)。请对此提供帮助,这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">


    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:gravity="center"
        android:elevation="0dp"
        android:id="@+id/appbarid">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:src="@drawable/imagep"
            tools:ignore="contentDescription"/>

    </android.support.design.widget.AppBarLayout>
    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="fill"
        app:tabMode="scrollable"
        android:id="@+id/tablayout_id"
        app:tabTextColor="@color/tabtextcolor"
        app:tabIndicatorColor="@color/tabindicatorcolor"
        android:background="@color/colorPrimary" />
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewpager_id" >

</android.support.v4.view.ViewPager>

    <com.github.clans.fab.FloatingActionMenu
        android:id="@+id/menu"
        android:layout_above="@id/viewpager_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        fab:menu_fab_size="normal"
        fab:menu_showShadow="true"
        fab:menu_shadowColor="#66000000"
        fab:menu_shadowRadius="4dp"
        fab:menu_shadowXOffset="1dp"
        fab:menu_shadowYOffset="3dp"
        fab:menu_colorNormal="@color/colorPrimary"
        fab:menu_colorPressed="@color/colorAccent"
        fab:menu_colorRipple="#ffffff"
        fab:menu_animationDelayPerItem="50"
        fab:menu_icon="@drawable/plus"
        fab:menu_buttonSpacing="0dp"
        fab:menu_labels_margin="0dp"
        fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
        fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
        fab:menu_labels_paddingTop="4dp"
        fab:menu_labels_paddingRight="8dp"
        fab:menu_labels_paddingBottom="4dp"
        fab:menu_labels_paddingLeft="8dp"
        fab:menu_labels_padding="8dp"
        fab:menu_labels_textColor="#FFFFFF"
        fab:menu_labels_textSize="14sp"
        fab:menu_labels_cornerRadius="3dp"
        fab:menu_labels_colorNormal="#333333"
        fab:menu_labels_colorPressed="#444444"
        fab:menu_labels_colorRipple="#66FFFFFF"
        fab:menu_labels_showShadow="true"
        fab:menu_labels_singleLine="false"
        fab:menu_labels_ellipsize="none"
        android:layout_gravity="bottom|right"
        fab:menu_labels_maxLines="-1"
        fab:menu_labels_position="left"
        fab:menu_openDirection="up"
        fab:menu_backgroundColor="@android:color/transparent"
        fab:menu_fab_label="Menu"
        fab:menu_fab_show_animation="@anim/my_show_animation"
        fab:menu_fab_hide_animation="@anim/my_hide_animation">


        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/myFAB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fab_colorNormal="#2196f3"
            app:fab_colorPressed="#40c4ff"
            app:fab_colorRipple="#99FFFFFF"
            android:src="@drawable/parts"
            fab:fab_size="mini"
            fab:fab_label="Share the app with your friends" />

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/myFAB2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fab_colorNormal="#7e57c2"
            app:fab_colorPressed="#9575cd"
            app:fab_colorRipple="#99ffffff"
            android:src="@drawable/post"
            fab:fab_size="mini"
            fab:fab_label="Send Suggestion/Feedback" />

    </com.github.clans.fab.FloatingActionMenu>
    </LinearLayout>

2 个答案:

答案 0 :(得分:0)

将顶部的LinearLayout更改为CoordinatorLayout,并将app:layout_behavior="@string/appbar_scrolling_view_behavior"添加到FAB。

答案 1 :(得分:0)

您应将“浮动”操作按钮与LinearLayout一起放置在CoordinatorLayout中。当您执行此操作时,操作按钮应始终漂浮在顶部,并且会出现一些很酷的行为,例如,如果您显示向Fab吐司自动上移。

请阅读以下内容以获取一些实施帮助:https://material.io/develop/android/components/floating-action-button/