【问题标题】:Floating Action Button appearing as a square显示为正方形的浮动操作按钮
【发布时间】:2018-05-29 15:12:39
【问题描述】:

我目前正在开发一个 Android 应用程序并使用最新添加的浮动操作按钮。但是,在编译了必要的库并将 fab 添加到我的 xml 文件中之后,它显示为一个正方形,而我希望它是一个圆形,就像其他任何地方一样。

我使用与网上找到的相同的基本代码来实现晶圆厂,我的结果是一个正方形,而他们的结果是一个漂亮的圆形晶圆厂。

这是我的代码:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:src="@drawable/ic_person_add_black_24dp" />

这是显示的屏幕截图:

如何将工厂(在此处添加联系人)显示为圆圈?

谢谢你,

【问题讨论】:

标签: android xml android-layout


【解决方案1】:

尝试为您的工厂或父布局设置一个 appcompat 主题:android:theme="@style/Theme.AppCompat"

【讨论】:

  • 这个适用于 FAB。您能说明一下扩展的 FAB 吗?
  • 材质组件可能应该使用材质主题,我想我们正在谈论com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton。您可以尝试Widget.MaterialComponents.ExtendedFloatingActionButton?attr/extendedFloatingActionButtonStyle(根据 deoc,这是默认设置)。有关更多详细信息,您可以查看材料样式 xml 源代码github.com/material-components/material-components-android/blob/…
【解决方案2】:

我不知道这是否解决了这个问题,但我暂时停止为另一个项目处理这个项目并且我的另一个项目没有这个问题。

如果您的活动扩展了 Activity 而不是 AppCompatActivity,AndroidStudio 似乎会创建一个方形工厂。

【讨论】:

    【解决方案3】:

    即使您的活动扩展 AppCompatActivity,您也可能需要构建项目 (Ctrl+F9) 才能看到正确呈现的预览。

    【讨论】:

      【解决方案4】:

      试试这个 XML 代码,这是 Android studio 从模板自动生成的代码

      <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"
          app:srcCompat="@android:drawable/ic_dialog_email" />
      

      希望这会有所帮助。

      【讨论】:

      • 它给了我同样的结果。我还尝试使用 Android Studio 上的 Design 选项卡并直接单击 fab 选项,它仍然显示为正方形。还有其他想法吗?
      • 您使用的是哪个版本的支持库?也尝试添加app:borderWidth="0dp"
      • 这里是: compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android.support:design:24.2.1' 另外,SdkVersion 设置为 27
      【解决方案5】:

      您可以将材质 FAB 与 Theme.MaterialComponents 一起使用

       <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
                  android:id="@+id/fab_Send"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentEnd="true"
                  android:layout_centerVertical="true"
                  android:contentDescription="@string/app_name"
                  android:gravity="center"
                  android:text="@string/send"
                  android:theme="@style/Theme.MaterialComponents"
                  android:textAllCaps="false"
                  android:textColor="@color/colorWhite"
                  android:textSize="@dimen/_12sdp"
                  app:backgroundTint="@color/colorPrimary"
                  app:borderWidth="0dp"
                  android:fontFamily="@font/play_fair_display_black"
                  app:useCompatPadding="true"
                  tools:ignore="RelativeOverlap" />
      

      这是结果

      发生这种情况的原因是,您为您的应用使用了与 FAB 不同的主题。在我的情况下,我为我的应用使用 Theme.AppCompat.Light.NoActionBar 但 FAB 不支持。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多