浮动动作按钮坏渲染

时间:2017-01-10 11:43:15

标签: android android-layout floating-action-button

我在应用程序中使用浮动操作按钮遇到了一些麻烦。在Android Studio模拟器中它看起来很不错,无论是在" design"在应用程序的模拟器中查看xml文件,但在实际设备中,当我运行应用程序时,它不具有圆形形状,但它是椭圆形的。 此外,这个错误仅在某些执行时发生...昨天FAB在我的设备上也是循环的,但今天不是(我没有修改xml部分,而在Java方面我不能处理它的方面)...

这是我的.xml文件,我定义了按钮:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coor"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="1">

    <RelativeLayout
        android:id="@+id/relative"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:layout_weight="0.88">

   <!-- Other elements-->

   <!-- Parent element-->   

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/etEntrate"
            android:textSize="@dimen/subtitles"
            android:padding="@dimen/activity_horizontal_margin"
            android:layout_alignRight="@+id/data"
            android:layout_alignEnd="@+id/data"
            android:layout_below="@+id/etSpese"
            android:layout_marginRight="@dimen/activity_horizontal_margin"
            android:layout_marginEnd="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_horizontal_margin"
              android:layout_marginBottom="@dimen/activity_horizontal_margin"/>

  <!--FAB-->
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            app:srcCompat="@drawable/plus"
            android:layout_alignTop="@+id/etEntrate"
            android:layout_marginTop="59dp"
            android:layout_alignLeft="@+id/etEntrate"
            android:layout_alignStart="@+id/etEntrate"
            android:layout_alignRight="@+id/etEntrate"
            android:layout_alignEnd="@+id/etEntrate" />

   <!--other elements-->
    </RelativeLayout>
</LinearLayout>

这里有两张关于我如何在设备上看到FAB以及它在模拟器上的外观的图片:

我的设备上的FAB:

FAB on my devic

Android Studio设计视图上的FAB

FAB on the design view of Android Studio

有人对此有所了解吗?谢谢!

2 个答案:

答案 0 :(得分:0)

当然FAB的宽度和高度设置为wrap_content,但是你试图左右对齐,这就是它伸展的原因。 只需删除其中任何一个。

答案 1 :(得分:0)

在水平方向使用重力时,必须使用layout_width = 0dp&amp;在垂直方向的情况下,layout_height = 0dp为布局内的每个子项。

只需从相对布局中删除浮动操作按钮,因为您已在使用坐标布局。

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coor"
android:layout_width="match_parent"
android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/relative"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:layout_weight="0.88">

   <!-- Other elements-->

   <!-- Parent element-->   

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/etEntrate"
            android:textSize="@dimen/subtitles"
            android:padding="@dimen/activity_horizontal_margin"
            android:layout_alignRight="@+id/data"
            android:layout_alignEnd="@+id/data"
            android:layout_below="@+id/etSpese"
            android:layout_marginRight="@dimen/activity_horizontal_margin"
            android:layout_marginEnd="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_horizontal_margin"
              android:layout_marginBottom="@dimen/activity_horizontal_margin"/>

  <!--FAB-->
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:clickable="true"
            app:srcCompat="@drawable/plus"
            android:layout_alignTop="@+id/etEntrate"
            android:layout_marginTop="59dp"
            android:layout_alignLeft="@+id/etEntrate"
            android:layout_alignStart="@+id/etEntrate"
            android:layout_alignRight="@+id/etEntrate"
            android:layout_alignEnd="@+id/etEntrate" />

   <!--other elements-->
    </RelativeLayout>