我正在尝试在Android中创建个人资料页面。我正在使用浮动操作按钮来显示用户图片。
最初我想显示默认图片。
我的xml代码如下:
<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" />
我的问题是为什么FAB周围有一些额外的空间。我不能删除那个空格/填充吗?
编辑:
这是我的完整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 :(得分:4)
您可能希望将scaletype属性更改为居中。像,
android:scaleType="center"
答案 1 :(得分:1)
在布局文件集属性中提升为0.因为它采用默认高程。
app:elevation="0dp"
现在在活动中检查api级别大于21并根据需要设置提升。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fabBtn.setElevation(10.0f);
}
答案 2 :(得分:0)
试试这个:
app:borderWidth="0dp"
您还可以使用高程
删除阴影app:elevation="6dp"
请参阅此link.
如果它不起作用,那么尝试像这样管理轮廓阴影:
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);
答案 3 :(得分:0)
我认为这是保证金,而不是填充。尝试以编程方式执行此操作:
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);
}
或尝试将FloatingActionButton放入CoordinatorLayout,如下例所示:
<?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>
答案 4 :(得分:0)
因为你正在使用app:fabSize="normal"
。更改为app:fabSize="mini"
答案 5 :(得分:0)
您可以通过允许图标变大来删除多余的填充。这样,您可以将图标设置为浮动操作按钮的大小。
app:maxImageSize="40dp"
或您要提供的尺寸。