3

Ich habe versucht, das floatingactionbutton -Element zu verwenden, aber es schwebt nicht in UI-Layout, die schwebende Schaltfläche besetzt einen Teil des Layouts und ist nicht über die Komponente, in meinem Fall ist ein viewpager,FAB (floating action button) schwebt nicht

button doesn't float

das ist mein Layout:

<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> 

Antwort

5

Dies liegt daran, dass Sie LinearLayout als Root-Layout verwenden. Sie benötigen FrameLayout, um Elemente übereinander zu stapeln, und FAB muss der letzte untergeordnete Knoten sein, da es über allen anderen Ansichten bleiben muss.

<FrameLayout> 
    <LinearLayout> 
    ... 
    </LinearLayout> 

    <!-- FAB be the last node inside FrameLayout here --> 
    <android.support.design.widget.FloatingActionButton /> 
</FrameLayout> 
+0

Vielen Dank, ich habe das Problem mit Ihrem Beitrag und dem Beitrag von Riten –

+0

gelöst Ich bin froh, dass ich helfen konnte :-) –

+0

Dies scheint nicht zu funktionieren, wenn die Tastatur angezeigt wird. –

0

können Sie Ihre LinearLayout zu CoordinatorLayout ändern?

0

Verwendung CoordinatorLayout wie unten:

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/main_content" 
    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="match_parent"> 

     <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:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="bottom|right" 
       android:layout_margin="16dp" 
       android:src="@drawable/ic_done" 
       app:layout_anchor="@id/lvToDoList" 
       app:layout_anchorGravity="bottom|right|end" /> 

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

Ich glaube nicht, Sie Koordinator Layout verwenden, können Sie einfach mit und unter Code Floating-Taste verwenden.

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/dashboard_bg" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<!-- here you can have your viewpager --> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/dashboardShowActionsFab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:elevation="4dp" 
    app:fabSize="normal" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="26dp" 
    android:layout_marginBottom="16dp" /> 

</RelativeLayout> 

Hoffe, das hilft.

+0

Danke, es klappt gut, ich habe das Problem mit deinem Beitrag gelöst. –

+0

Wow ... glücklich, euch zu helfen ... Wenn es Ihnen geholfen hat ... bitte akzeptieren Sie die Antwort ..: D – Riten