2017-01-18 18 views
1

Я использую NavigationDrawer и BottomNavigationView. Но после добавления навигационного ящика положение нижней навигации изменяется. Как я могу это решить? Я предполагаю, что эта проблема вызвана моими XML-файлами.Почему мой BottomBar посередине экрана?

BottomBar

activity_main.xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:openDrawer="start" 
tools:context="com.example.yunus.ototakip.MainActivity"> 

<include 
    layout="@layout/app_bar_navigation_bar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_navigation_bar" 
    app:menu="@menu/activity_navigation_bar_drawer" /> 
<FrameLayout 
    android:id="@+id/main_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true"> 
</FrameLayout> 

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/bottom_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    app:itemBackground="@color/colorPrimary" 
    app:itemIconTint="@color/beyaz" 
    app:itemTextColor="@color/beyaz" 
    app:menu="@menu/bottombar_menu" /> 

+0

Вы знаете, что 'layout_alignParentBottom' предназначен для' RelativeLayout'? – Selvin

+0

Ах да, но как я собираюсь установить это в нижней части DrawerLayout? –

ответ

3

Прикрепите свой BottomNavigationView к CoordinatorLayout (или любой другой группе просмотра, которая находится внутри макета app_bar_navigation_bar), а не DrawerLayout и добавьте соответствующую метку силы тяжести.

android:layout_gravity="bottom" 
+1

спасибо, что это хорошо! –

0

Использование Android: layout_gravity = "снизу" вместо layout_alignParentBottom, как это для RelativeLayout не android.support.v4.widget. DrawerLayout.

+0

Я получаю эту ошибку: BottomNavigationView по индексу 3 не имеет допустимого layout_gravity - должен быть Gravity.LEFT, Gravity.RIGHT или Gravity.NO_GRAVITY –

1

Попробуйте использовать любой из двух =

android:layout_gravity="bottom" 

или

android:gravity="bottom" 
+0

Если это работает, пожалуйста, примите и проголосуйте за ответ – Knattic

+0

Я сделал. Спасибо друг. –

0

Как ни странно в моем коде он дает ошибку, когда я в том числе гравитацию как дно.

FATAL EXCEPTION: main 

java.lang.IllegalStateException: Child [email protected] at index 3 does not have a valid layout_gravity - must be Gravity.LEFT, Gravity.RIGHT or Gravity.NO_GRAVITY 
                       at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1112) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
                       at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
                       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
                       at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
                       at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
                       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
                       at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
                       at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
                       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148) 
                       at android.view.View.measure(View.java:15172) 
                       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850) 
                       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102) 
                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275) 
                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 
                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214) 
                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
                       at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
                       at android.view.Choreographer.doFrame(Choreographer.java:525) 
                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
                       at android.os.Handler.handleCallback(Handler.java:615) 
                       at android.os.Handler.dispatchMessage(Handler.java:92) 
                       at android.os.Looper.loop(Looper.java:137) 
                       at android.app.ActivityThread.main(ActivityThread.java:4745) 
                       at java.lang.reflect.Method.invokeNative(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:511) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                       at dalvik.system.NativeStart.main(Native Method) 

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

  • Нет связанных вопросов^_^