Android中的浮动操作按钮,其图标不在中心

时间:2019-07-01 07:22:16

标签: android xml android-xml

这是XML:

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

<RelativeLayout 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"
tools:context=".MainActivity">

<TextView
    android:id="@+id/test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="Hello World!" />

<android.support.design.widget.FloatingActionButton
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_marginBottom="4dp"
    android:scaleType="center"
    android:src="@drawable/button_floating_add"
    app:borderWidth="0dp"
    app:elevation="8dp" />

</RelativeLayout>

输出看起来像这样:

API-28

我认为这是由于API版本的更改而发生的。我正在将compileSDK和targetSDK版本用作28,并将设计和appcompat库用作28.0.0。当我将API和设计库的版本更改回26时,输出如下:

API 26

5 个答案:

答案 0 :(得分:3)

floating action button anatomy状态

  

FAB容器有两种尺寸:

     
      
  1. 默认(56 x 56dp)
  2.   
  3. 迷你(40 x 40dp)
  4.   

因此,您要使用小型FAB。但是您不必使用layout_widthlayout_height来定义它,因为这只会弄乱填充。您必须使用app:fabSize属性并将其设置为SIZE_MINI

<android.support.design.widget.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:fabSize="mini"
    ... />

答案 1 :(得分:1)

您是否尝试过使用Android Asset Studio?它们几乎具有每种尺寸和密度的每个基本可绘制对象。此处链接https://developer.android.com/studio/write/image-asset-studio.html

答案 2 :(得分:0)

根据视图的高度和宽度使用此属性

app:fabCustomSize="40dp"

并建议您使用.svg文件而不是.png。

答案 3 :(得分:0)

可以请您试试这些属性,

android:layout_gravity="bottom|center"
android:layout_centerHorizontal="true"
android:scaleType="fitCenter"

答案 4 :(得分:0)

晶圆厂是一种特殊的视图,您必须遵守其所需的需求。话虽这么说,其宽度和高度应为"wrap_content"。如果您希望自己的晶圆厂成为迷你版,可以添加app:fabSize="mini"。 您可以使用layout_gravity设置其屏幕位置(在下面的示例中,该位置在右下角)。另外,图标必须为24dp x 24dp。我建议您从https://material.io/tools/icons/?style=baseline下载图标,在这里您可以选择图像大小以及所有其他内容。

<com.google.android.material.floatingactionbutton.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:onClick="@{() -> viewModel.onFabPressed()}"
  app:srcCompat="@drawable/ic_baseline_add_24px"/> 

上面的xml是我的一个应用程序中的有效示例。 我希望这对您有所帮助,并祝您有美好的一天!