2016-03-17 18 views

cevap

0

Bunun için TabLayout kullanabilirsiniz Destek lib çıktı. Ekranın alt kısmında kolayca hizalanabilir.

1

Şu an için kod örneği yok ve Alt çubuk destek kitaplığında yok (henüz). Ancak yönergeleri taklit eden bir üçüncü parti kitaplığı buldum. here bulunabilir.

5

Orada kod örneği yok. Şu andaki işi yapabileceğimiz özel kütüphaneler olsa da (yukarıdaki mesajlarda da belirtildiği gibi) Bunu yapmak için TabLayout'u kullanmamanızı tavsiye etmem. Çünkü Bottom Navigation Sekmesi için tasarım yönergelerinde ekranın hızlıca kaydırılmasının açıkça belirtilmesi gerekir. sayfaları yatay olarak kaydırmaz. Ancak, TabLayout, HorizontalScrollView'u genişletir ve ana amacı kaydırma işlemini kolaylaştırmaktır, ancak bunu devre dışı bırakmanıza rağmen ideal olmaz.

+0

Katılıyorum ... Kaydırmayı kapatırken bile, slayttan animasyon gibi kurtulmanın ve kaybolmanın veya kaydırmanın kolay bir yolu yoktur. yerine. – Patric

2

Kullanıcı6146138'de belirtildiği gibi, https://github.com/roughike/BottomBar mükemmel bir uygulamadır. Ve takip etmek gerçekten kolay ve bölüm 2 ekli parçaları ile nasıl kullanılacağını gösterir here, üzerinde harika bir öğretici kontrol edebilirsiniz.

Başka bir güzel uygulama, kontrol etmek isterseniz https://github.com/aurelhubert/ahbottomnavigation. Üzerinde herhangi bir öğretici bilmiyorum, ancak bağlantıdaki talimatlar yeterince iyi IMO'dur.

+0

Pürüzlü kullanmayı denedim ancak ilk sekmeyi otomatik olarak seçmeye devam et - herhangi bir fikri neden? – Lion789

+0

@ Lion789 Başlangıçta mı demek istiyorsun? Ya da her zaman? İlk sekmenin başlangıçta seçilmesini istemiyor musunuz? Sorunu daha ayrıntılı olarak açıklayabilir misiniz, lütfen. – ninjachippie

1

Depo XML

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 


    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
</android.support.design.widget.AppBarLayout> 


<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <android.support.design.widget.BottomNavigationView 
     android:id="@+id/nm_bottom" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="@color/colorPrimaryDark" 
     app:itemIconTint="@android:color/white" 
     app:itemTextColor="@android:color/white" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     app:menu="@menu/nav_menu" /> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/rv" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@id/nm_bottom" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

</RelativeLayout> 

https://gitlab.com/ashish29agre/android-bottom-navigation-view-support-lib

Merhaba Bu biraz geç burada olabileceğini bir göz bu linkten tam projeyi edilir eklemiş

+0

"layout_behavior" RelativeLayout içinde olmalı ve "layout_scrollFlags", BottomNavigationView – Bronx

+0

ile çalışmıyor. Cevabımı kontrol etmek için https://gitlab.com/ashish29agre/android-bottom-navigation-view-support-lib – sector11

12

kullanabilirsiniz destek kütüphanesi v25.

mizanpajınızda BottomNavigationView ekle senin build.gradle

compile 'com.android.support:design:25.0.0' 

ekleyin: Sonra

<?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/my_action1" 
     android:enabled="true" 
     android:icon="@drawable/my_drawable" 
     android:title="@string/text" 
     app:showAsAction="ifRoom" /> 
    .... 
</menu> 

:

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

Sonra bir menü dosyasını (menü/bottom_navigation_menu.xml) oluşturmak dinleyiciyi ekle:

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.my_action1: 
         //Do something... 
         break; 

       } 
       return false; 
      } 
     }); 
8

Şimdi BottomNavigationView v25.0.0 tasarım desteği lib eklendi xml dosyasına Ekim 2016'da

ekle BottomNavigationView serbest bırakılır.

Örn. activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="priyank.patel.bottomnavigationdemo.MainActivity"> 

    <FrameLayout 
     android:id="@+id/main_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/bottom_navigation" 
     android:layout_alignParentTop="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="@android:color/white" 
     app:itemTextColor="@android:color/white" 
     app:menu="@menu/bottom_navigation_main" /> 
</RelativeLayout> 

Menü öğeleri için menü öğeleri için xml ekleyin.

Örn.

<?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_favorites" 
     android:enabled="true" 
     android:icon="@drawable/ic_favorite_white_24dp" 
     android:title="@string/text_favorites" 
     app:showAsAction="ifRoom" /> 

    <item 
     android:id="@+id/action_video" 
     android:enabled="true" 
     android:icon="@drawable/ic_music_video_white_24dp" 
     android:title="@string/text_video" 
     app:showAsAction="ifRoom" /> 

    <item 
     android:id="@+id/action_music" 
     android:enabled="true" 
     android:icon="@drawable/ic_audiotrack_white_24dp" 
     android:title="@string/text_music" 
     app:showAsAction="ifRoom" /> 

</menu> 

etkinlik sınıfında BottomNavigationView üzerinde OnNavigationItemSelectedListener ayarlayın bottom_navigation_main.xml.

Örn. MainActivity.java BottomNavigation-Demo

1

için buraya

import android.support.design.widget.BottomNavigationView; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

private Fragment fragment; 
private FragmentManager fragmentManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    fragmentManager = getSupportFragmentManager(); 
    fragment = new FavouriteFragment(); 
    final FragmentTransaction transaction = fragmentManager.beginTransaction(); 
    transaction.add(R.id.main_container, fragment).commit(); 

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

    bottomNavigationView.setOnNavigationItemSelectedListener(
      new BottomNavigationView.OnNavigationItemSelectedListener() { 
       @Override 
       public boolean onNavigationItemSelected(MenuItem item) { 
        switch (item.getItemId()) { 
         case R.id.action_favorites: 
          fragment = new FavouriteFragment(); 
          break; 
         case R.id.action_video: 
          fragment = new VideoFragment(); 
          break; 
         case R.id.action_music: 
          fragment = new MusicFragment(); 
          break; 
        } 
        final FragmentTransaction transaction = fragmentManager.beginTransaction(); 
        transaction.replace(R.id.main_container, fragment).commit(); 
        return true; 
       } 
      }); 
    } 
} 

Ödeme Sen BottomNavigationView google tasarım destek kütüphaneleri kullanabilirsiniz. Cevabı okuyun here.

İlgili konular