2017-01-18 13 views
1

私はNavigationDrawerとBottomNavigationViewの両方を使用しています。しかし、ナビゲーション・ドロワの追加後、ボトム・ナビゲーションの位置が変更されます。それをどうすれば解決できますか?私はこの問題が私のXMLファイルによって引き起こされると仮定します。ボトムバーが画面中央に表示されるのはなぜですか?

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

CoordinatorLayout(またはapp_bar_navigation_barレイアウト内にあるビューグループ)内にBottomNavigationViewを添付し、DrawerLayoutではない適切な重力タグを追加します。

android:layout_gravity="bottom" 
+1

ありがとうございました。 –

0

使用アンドロイド:RelativeLayoutはandroid.support.v4.widgetないため、そのまま代わりlayout_alignParentBottomのlayout_gravity = "下"。 DrawerLayout。

+0

私はこのエラーが表示されます:インデックス3のBottomNavigationViewは有効なlayout_gravityを持っていません - Gravity.LEFT、Gravity.RIGHTまたはGravity.NO_GRAVITYでなければなりません –

1

私は下のように重力を含めていたときに妙に私のコードではエラーを与えている2 =

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) 
関連する問題