2017-01-10 19 views
0

У меня возникают проблемы с плавающей кнопкой действия в приложении. В эмуляторе Android Studio он выглядит неплохо, как в «дизайнерском» представлении 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

FAB на представлении дизайна Android Studio

FAB on the design view of Android Studio

Кто-нибудь какой-нибудь идеи по этому поводу? Спасибо!

+0

Первое использование 'android: src' для установки FAB drawable, тогда вы можете сказать мне, почему вы выровняете его как слева, так и справа от элемента eEntrate? Нарисуйте черновик архива. Чао! – fillobotto

+0

Какую версию библиотеки поддержки дизайна вы используете? –

+0

попробуйте изменить верхнюю границу поля. – W4R10CK

ответ

0

Конечно, ширина и высота FAB установлены в wrap_content, но вы пытаетесь выровнять как по левому, так и по правому краю, поэтому он растягивается. Просто удалите один из них.

0

Когда вы используете гравитацию в горизонтальной ориентации, вы должны использовать layout_width = 0dp & в случае вертикальной ориентации, layout_height = 0dp для каждого дочернего макета.

или

просто удалить с плавающей кнопкой действий с относительного макета, потому что вы уже используете координат Layout.

<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>