Floating action button not displaying over recyclerview(which is inside a DrawerLayout)

前端 未结 5 1372
[愿得一人]
[愿得一人] 2021-02-19 00:30

I am trying to get FAB over recyclerview which in my case will cover the whole screen. The FAB wont display even recyclerview is empty. Following is my xml code.



        
相关标签:
5条回答
  • 2021-02-19 01:10

    It should be because of androidmanifest.xml. When you add a new activity it is automatically added in androidmanifest.xml with right permission.

    0 讨论(0)
  • 2021-02-19 01:11

    I had just created a new activity and copy pasted the whole code there and its working fine there. I still dont know the issue that what was wrong. But it worked for me this way. I had compared line by line code in two activities and they are same. Its just that floating action button is displaying in new activity and not in the old.

    any ways thanks for all the help from community who tried.

    0 讨论(0)
  • 2021-02-19 01:12

    Try using FrameLayout instead of LinearLayout as your root layout. That worked for me.

    0 讨论(0)
  • 2021-02-19 01:19

    Try it like this :

    Remove all layouts.

    Keep only one parent, that's CoordinatorLayout.

    Inside CoordinatorLayout, put both your RecyclerView and FloatingActionButton.

    CoordinatorLayout should auto arrange your toolbar, recycler and fab, since is programmed to handle the design support library components.

    Here's an example. You can use RecyclerView in place of the FrameLayout (which dynamically loads fragments at runtime). I generally use RecyclerView in another Fragment and load the fragment in here at runtime. This keeps the xml files clean.

    <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/layout_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:elevation="0dp">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
    
        </android.support.design.widget.AppBarLayout>
    
    
        <!-- Main layout for fragment placing -->
        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" >
    
        </FrameLayout>
    
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fabBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_action"
            android:layout_gravity="bottom|right"
            android:layout_marginBottom="@dimen/fab_margin_bottom"
            android:layout_marginRight="@dimen/fab_margin_right"
            app:fab_colorNormal="@color/pink"
            app:fab_colorPressed="@color/pink_pressed"
            app:borderWidth = "0dp" />
    
    
    </android.support.design.widget.CoordinatorLayout>
    
    <!-- Nav drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:itemIconTint="@color/pink_pressed"
        app:itemTextColor="@color/primary_text"
        app:menu="@menu/nav_menu" />
    
    </android.support.v4.widget.DrawerLayout>
    
    0 讨论(0)
  • 2021-02-19 01:28

    You could use the LinearLayout, that seems not be the problem.

    I'm pretty sure your solution will be fixed by moving the RecyclerView under the FAB button.

    In other words, in the XML layout, move the FAB button block of code, over the RecyclerView block of code.

    An example:

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/myFAB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="20dp"
            app:elevation="4dp" />
    
        <android.support.v7.widget.RecyclerView
            android:paddingLeft="2dp"
            android:paddingRight="2dp"
            android:id="@+id/recyclerView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />
    

    Order matters due to the way android system draws it's views.

    You might see other artifacts but the FAB button should at least be visible now.

    0 讨论(0)
提交回复
热议问题