2017-09-24 1 views
0

Weitere Android-Layout-Probleme für den Android-Neuling. Ich habe versucht, Android-Programmierung zu lernen, und in den meisten Fällen ist es einfach (ish), der schwierigste Teil ist das Layout. Ich habe gerade ein Tab-Layout, das ist die "Home" -Ansicht, und auf dieser Ansicht brauche ich einen Floating-Action-Button. Aus irgendeinem Grund nimmt die schwebende Aktionsschaltfläche die gesamte Breite des Bildschirms ein. Die Schaltfläche selbst hat die richtige Größe, jedoch schneidet das Layout den unteren Bildschirmrand ab. Ich habe ein paar Tutorials verfolgt und egal, was ich mache, es nimmt immer die ganze Breite, die den Boden meines Bildschirms schneidet. Screenshot davon in einem Emulator von Android Studio ausgeführt. Das Layout ist hier ...FloatingActionButton nimmt die Breite des Bildschirms

<?xml version="1.0" encoding="utf-8"?> 
<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.google.firebase.quickstart.auth.HomeActivity" 
    android:orientation="vertical"> 
    <!--<android.support.design.widget.AppBarLayout--> 
     <!--android:id="@+id/appbar"--> 
     <!--android:layout_width="match_parent"--> 
     <!--android:layout_height="wrap_content"--> 
     <!--android:paddingTop="8dp"--> 
     <!--android:theme="@style/AppTheme.AppBarOverlay">--> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:minHeight="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

     </android.support.v7.widget.Toolbar> 
    <!--</android.support.design.widget.AppBarLayout>--> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="@color/white" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:scaleType="center" 
     android:padding="8dp" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="8dp" 
     android:elevation="8dp" 
     android:tint="@color/white" 
     app:srcCompat="@drawable/ic_add"/> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/primaryLightColor" /> 
</LinearLayout> 

ich mit Fragmenten und solche die Ansicht ausfülle, aber ich glaube nicht, dass das Problem sein würde. Kann jemand sehen, warum der FloatingActionButton nicht schwebt, sondern als volles lineares Layout agiert? Vielen Dank für die Hilfe.

enter image description here

+0

versuchen Sie einfach Ich bin mir nicht sicher über das perfekte Ergebnis, aber bitte lassen Sie mich wissen, ob es funktioniert oder nicht. in dir floatingActionButton nur den ** scaleType als centerCrop ** und dann sehen, ob es funktioniert oder nicht –

+0

@AlokKumarVerma es hat nicht funktioniert, zeigt immer noch die Schaltfläche über den ganzen Bildschirm. Vielen Dank, obwohl –

Antwort

1

Verwendung Layout-Koordinate für die Ansicht schwebende Aktionstaste:

Remove Schwimmens Button aus dem XML-Code und XML-Code wie folgt sein sollte:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="info.androidhive.fab.MainActivity"> 


    <include layout="@layout/your_current_layout" /> // your current xml code layout 

    <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:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" /> 

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

Wird das Layout ruinieren, dass ich die Tabs an den unteren Rand des Bildschirms drückt? –

+0

Das hat funktioniert, aber jetzt deckt der FAB meine Tabs am unteren Bildschirmrand ab. Außerdem möchte ich nur die Fab auf der Registerkarte "Home", nicht auf den anderen Registerkarten. Ändert das etwas? –

+0

Wenn Sie FAB in einem Home-Tab haben möchten, dann fügen Sie den XML-Code in Ihre Home-Tab-Aktivität und nicht in die übergeordnete Aktivität ein. –

0

Sie benötigen tu fügen Sie die FAB nur im Home-Layout hinzu:

<android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_add" 
     android:layout_gravity="bottom|end"/> 
Verwandte Themen