2016-09-03 2 views
1

Новое программирование на Android & борется с сейчас. Я использую андроид-студию по умолчанию «Активность навигационного ящика». Кроме того, я добавил нижнюю панель от https://github.com/roughike/BottomBar. Но, добавив, что мой FAB скрылся за нижней панелью.Android плавающая кнопка действия, скрытая за нижней панелью навигации

Вот Scrrenshot -

enter image description here

Я знаю, что это какой-то вопрос стиля. Я попытался дать bottomMargin для FAB. Но это не работает.

Вот мой код -

app_bar_main.xml

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.bhramaan.android.bhramaan.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/BhramaanTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/BhramaanTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_main" /> 

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

    <com.roughike.bottombar.BottomBar 
     android:id="@+id/bottomBar" 
     android:layout_width="match_parent" 
     android:layout_gravity="bottom|end" 
     android:layout_height="60dp" 
     android:layout_alignParentBottom="true" 
     app:bb_behavior="shy" 
     android:background="@color/bottomBar" 
     app:bb_activeTabColor="@color/white" 
     app:bb_tabXmlResource="@xml/bottombar_tabs" /> 

</android.support.design.widget.CoordinatorLayout> 

нужны некоторые рекомендации для решения этой проблемы.

+0

Добавить эту строку в файл android.support.design.widget.FloatingActionButton в Xml android: layout_above = "@ + id/bottomBar" – Nithinlal

+0

Проверьте мой ответ ниже, дайте мне знать, если вы столкнулись с какой-либо проблемой. –

+0

@Nithinlal LOLZ вы пробовали с предоставлением этого 'добавьте эту строку в файл android.support.design.widget.FloatingActionButton в Xml android: layout_above =" @ + id/bottomBar ", просто попробуйте его с помощью вышерасположенного макета. он держит это свойство или нет !!!!!!!!!. –

ответ

1

Измените свой xml как на это. Добавьте еще несколько свойств в ваш Floating Action Button.

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_gravity="bottom|end" 
    android:layout_marginBottom="70dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:src="@android:drawable/ic_dialog_email" /> 
+2

Статические значения для установки поля снизу неверны – Nithinlal

+0

@ Нитинлал. Что ему нужно в OP - это скрытие 'FAB' рядом с« Bottom Bar »с использованием этого' margin_bottom' не скроет этого. Ответ имеет смысл, связанный с вопросом. нет необходимости понижать голос без каких-либо серьезных причин. Статические значения здесь не важны для «полей», потому что «FAB» всегда остается внизу справа. –

+1

Эй, это сработало. У меня есть только одна проблема, потому что у него есть '' 'android: layout_marginBottom =" 70dp "' '' Если мы скроем нижнюю панель, то она все еще находится на своем месте. Разве мы не можем сделать что-то там, где он будет относительно использовать маржу из нижней панели. Таким образом, когда нижняя панель будет скрываться, FAB автоматически опустится. – mi6crazyheart

0

Заранее пусть другие знают это решение подходит к моим потребностям. Мне не нужны фантастические анимации (это нормально, но не для моих требований к проекту). Я сделал, чтобы обернуть основное содержимое (FrameLayout), FAB и BottomNavigationView внутри RelativeLayout. Опять же, я думаю, что это можно было бы сделать лучше, поэтому я открыт для предложений.

<android.support.design.widget.CoordinatorLayout 
    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"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/admin_appbar_layout" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:layout_width="fill_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_alignParentTop="true" 
     tools:elevation="4dp"> 

     <!-- The toolbar --> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/admin_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/customActionBar" 
      app:theme="@style/customActionBar" 
      android:background="?attr/colorPrimary" 
      android:minHeight="?attr/actionBarSize"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:gravity="center_horizontal"> 

       <TextView 
        android:id="@+id/tv_toolbar_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        style="@style/H2_bold" 
        android:text="@string/activity_admin_name"/> 

      </LinearLayout> 

      </android.support.v7.widget.Toolbar> 

    </android.support.design.widget.AppBarLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="?attr/actionBarSize"> 

     <FrameLayout 
      android:id="@+id/content_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_above="@+id/bottom_navigation_bar"/> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab_add_new_item" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:src="@drawable/ic_action_new" 
      android:layout_alignParentEnd="true" 
      android:layout_above="@+id/bottom_navigation_bar" 
      android:layout_margin="@dimen/fab_dimen" 
      tools:elevation="2dp"/> 

     <android.support.design.widget.BottomNavigationView 
      android:id="@+id/bottom_navigation_bar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      app:itemBackground="@color/black" 
      app:itemIconTint="@color/white" 
      app:itemTextColor="@color/white" 
      app:menu="@menu/admin_bottom_navigation_items" 
      tools:elevation="2dp"/> 

    </RelativeLayout> 

</android.support.design.widget.CoordinatorLayout> 

Я знаю, что вопрос может казаться старым, но надеюсь, что это поможет кому-то еще.

Смежные вопросы