2016-08-04 25 views
3

enter image description hereExtra-Polsterung um Floating Action-Knopf Android

Ich versuche, eine Profilseite in Android zu machen. Ich benutze eine Floating-Action-Taste, um ein Benutzerbild anzuzeigen.

Zunächst möchte ich ein Standardbild anzeigen.

Meine XML-Code sieht wie folgt aus:

<android.support.design.widget.FloatingActionButton 
    android:layout_height="100dp" 
    android:layout_width="100dp" 
    android:id="@+id/userIcon" 
    app:fabSize="normal" 
    android:src="@drawable/male_icon" 
    app:pressedTranslationZ="12dp" 
    app:layout_anchor="@id/app_bar" 
    app:layout_anchorGravity="bottom|center" /> 

Meine Frage ist, warum einige besonders viel Platz dort um den FAB ist. Kann ich den Space/Padding entfernen?

EDITED:

hier ist mein vollständiger Code xml ::

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/app_bar_height" 
    android:fitsSystemWindows="true" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/toolbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:background="@drawable/background" 
     app:contentScrim="#2678AD" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_scrolling" /> 

<android.support.design.widget.FloatingActionButton 
    android:layout_height="100dp" 
    android:layout_width="100dp" 
    android:id="@+id/userIcon" 
    app:fabSize="normal" 
    android:src="@drawable/male_icon" 
    app:pressedTranslationZ="12dp" 
    app:layout_anchor="@id/app_bar" 
    app:layout_anchorGravity="bottom|center" /> 

+0

Sie Ränder wie geben kann: android: layout_marginEnd = "7DP" android: layout_marginBottom = "10DP" – kgandroid

Antwort

0

versucht diese:

app:borderWidth="0dp" 

und Sie können auch Schatten Höhe mit entfernen

app:elevation="6dp" 

sehen diese link.

Wenn es nicht funktioniert, dann versuchen Umriss Schatten wie diese zu verwalten:

Button fab = (Button) rootView.findViewById(R.id.fabbutton); 

    Outline mOutlineCircle; 
    int shapeSize = getResources().getDimensionPixelSize(R.dimen.shape_size); 
    mOutlineCircle = new Outline(); 
    mOutlineCircle.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize/2); 

    fab.setOutline(mOutlineCircle); 
    fab.setClipToOutline(true); 
+0

Hey @sagar, Danke für die Antwort aber das half nicht! –

+0

in dem Gerät, das Sie testen .. –

+0

wenn sein Pre-Lutscher, dann –

0

Ich denke, dieser Spielraum ist, nicht auffüllen. Versuchen Sie es programmatisch tun:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 
     RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) floatingActionButton.getLayoutParams(); 
     params.setMargins(0, 0, 0, 0); 
     floatingActionButton.setLayoutParams(params); 
    } 

Oder versuchen FloatingActionButton in CoordinatorLayout zu setzen, wie ein Beispiel unter:

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/bt_ok" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:layout_marginRight="10dp" 
     app:backgroundTint="@color/primary" 
     app:borderWidth="0dp" 
     app:fabSize="mini"/> 
</android.support.design.widget.CoordinatorLayout> 
+1

Hey @Huy, versucht, es pragmatisch zu lösen, aber nicht geholfen. Und die FAB ist in einem Koordinatenlayout –

+0

pls poste Ihre volle xml, dimens Wert :) – alway5dotcom

+0

Nur aktualisiert meine volle xml code –

3

u Möglicherweise möchten Sie die Scaletype Attribut Zentrum ändern. Wie,

0

In Layout-Datei Attributhöhe auf 0 setzen, weil es Standardhöhe nimmt.

app:elevation="0dp" 

Jetzt in Aktivität überprüfen api Ebene größer als 21 und Höhe einstellen, wenn erforderlich.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     fabBtn.setElevation(10.0f); 
    } 
0

Weil Sie gegenüber app:fabSize="normal" verwenden. Wechseln Sie in app:fabSize="mini"