额外填充围绕浮动操作按钮的Android
我想作一简介页面中的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" />
试试这个:
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);
嘿@sagar,感谢您的答复,但没有帮助! –
其中你正在测试的设备.. –
如果它的前棒棒糖,然后影子 –
我觉得这是保证金,不填充。尝试以编程方式做到这一点:
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>
ü可能要到scaletype属性更改为中心。像,
android:scaleType="center"
在布局文件集属性提升为0,因为它采用默认高程。
app:elevation="0dp"
现在在活动检查api级别大于21并设置高度如果需要。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fabBtn.setElevation(10.0f);
}
因为您使用的是相反的app:fabSize="normal"
。更改为app:fabSize="mini"
您可以给边距如:android:layout_marginEnd =“7dp” android:layout_marginBottom =“10dp” – kgandroid