2017-01-05 5 views
1

Ich habe diese XML-Code erzeugt wird, wenn ich einen neuen Tabbed Aktivität:Android TabLayout am unteren Rand des Bildschirms

<?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:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="eis1617.muellerkimmeyer.app.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/appbar_padding_top" 
     android:theme="@style/AppTheme.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:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     app:srcCompat="@android:drawable/ic_dialog_email" /> 

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

Wie genau muss ich es ändern, dass die Tab-Leiste auf der Unterseite platziert werden der Bildschirm? Auf dem TabLayout Tag habe ich bereits versucht, android: layout_gravity = "bottom" hinzuzufügen, aber es hat nichts geändert.

+0

Sie machen es falsch? meinst du bottom menu? – Veer3383

+0

Was meinst du? Ich möchte die Tab-Leiste am unteren Rand des Bildschirms platziert. – Nono

+0

Antwort für das untere Menü hinzugefügt – Veer3383

Antwort

5

Dies ist, wie ich es erreicht:

<?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" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="in.mylo.pregnancy.baby.app.FAB"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@android:color/white" /> 
</android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPagerHome" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/bottomNavigation" /> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:background="@android:color/white" 
     android:elevation="80dp"> 

    <android.support.design.widget.TabLayout 
      android:id="@+id/bottomNavigation" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      android:clickable="true" 
      app:tabBackground="?attr/selectableItemBackground" 
      app:tabGravity="fill" 
      app:tabIndicatorHeight="0dp" 
      app:tabMode="fixed" 
      app:tabSelectedTextColor="@android:color/black" /> 

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

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

Wäre schön zu wissen, was ich an meinem Code ändern muss. Weil ich alle Elemente behalten möchte. In Ihrem Code fehlt beispielsweise die Symbolleiste. – Nono

+0

@Nono Ich habe meine Antwort bearbeitet, jetzt prüfen. Entfernen Sie das TabLayout von AppBarLayout; Erstellen Sie unterhalb von ViewPager ein neues AppBarLayout und fügen Sie dort TabLayout hinzu. –

1

Layout- Dont Verwendung Tab-Menü, fügen Sie stattdessen das neue Material unteren Navigationsansicht

<?xml version="1.0" encoding="utf-8"?> 

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

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.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/AppTheme.PopupOverlay"> 

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

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

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewpagerhome" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <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/colorPrimaryDark" 
      app:itemIconTint="@drawable/menucolor" 
      app:itemTextColor="@drawable/menucolor" 
      app:menu="@menu/bottommenu"/> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/bottom_navigation" 
      android:layout_alignParentRight="true" 
      app:srcCompat="@android:drawable/ic_dialog_email" 
      android:layout_marginTop="@dimen/fab_margin" 
      android:layout_marginBottom="@dimen/fab_margin" /> 
    </RelativeLayout> 
</android.support.design.widget.CoordinatorLayout> 

Menü am unteren Rand verwendet werden als ein unteres Menü, benötigt es ein Menü zu aufgeblasen

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_order" 
     android:enabled="true" 
     android:icon="@drawable/orders" 
     android:title="My Orders" 
     app:showAsAction="ifRoom" /> 
    <item 
     android:id="@+id/action_account" 
     android:enabled="true" 
     android:icon="@drawable/account" 
     android:title="My Account" 
     app:showAsAction="ifRoom" /> 
    <item 
     android:id="@+id/action_logout" 
     android:enabled="true" 
     android:icon="@drawable/account" 
     android:title="Logout" 
     app:showAsAction="ifRoom" /> 
</menu> 

In Ihrer Aktivitätsklasse Ihre declare Ihr unteres Menü initialisieren und implementieren, den listner,

BottomNavigationView bottomNavigationView; 
bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation); 

    bottomNavigationView.setOnNavigationItemSelectedListener(
        new BottomNavigationView.OnNavigationItemSelectedListener() { 
         @Override 
         public boolean onNavigationItemSelected(@NonNull MenuItem item) { 

          switch (item.getItemId()) { 
           case R.id.action_order: 
            // your fragment or activity code here 
            break; 
           case R.id.action_account: 
            // your fragment or activity code here 
            break; 
           case R.id.action_logout: 
            break; 
          } 
          return false; 
         } 
        }); 
     } 

Fertig! Hoffe, das hilft.

Verwandte Themen