Genel

Android Kotlin Navigation Bottom Bar

Merhabalar,

Bugünki yazımızda Navigation Bottom Bar ‘ı inceleyeceğiz.

Öncelikle nedir ? diye soracak olursanız aşağıdaki gibi telefonun alt tarafında bulunan özelliktir. ViewPager ile sağa sola kaydırmak özelliğini direk yapamıyorsunuz. Uğraşmayın boşuna 🙂

Hadi gelin aşağıdaki gibi yapalım.

bottom_name_menu.xml -> res klasörü içerisinde sağ tıklayıp New -> Android Resource Directory seçin. Sonrasında menu ‘yü ekleyebilirsiniz. Sonrası ise menu klasöründe sağ tuş -> new -> Menu Resource File ‘ı seçin adını bottom_name_menu.xml koyup aşağıdaki kodu kopyalayın.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="//schemas.android.com/apk/res/android">

    <item
        android:id="@+id/menu_search"
        android:title="Aramalar"
        android:icon="@drawable/ic_search"/>

    <item
        android:id="@+id/menu_mainpage"
        android:title="Anasayfa"
        android:icon="@drawable/ic_home_black_24dp"/>

    <item
        android:id="@+id/menu_fav"
        android:title="Favoriler"
        android:icon="@drawable/ic_favorite_border"/>

</menu>

Yukarıdaki kod’ta olay basit. icon ‘ları drawable klasöründe sağ Tık – New – vector ya da Image Assetst ‘ten ekleyebilirsiniz. diğeri id ve title veriyorsunuz.

activity_main.xml içerisine aşağıdaki kodu yapıştırın.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="//schemas.android.com/apk/res/android"
    xmlns:app="//schemas.android.com/apk/res-auto"
    xmlns:tools="//schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/backgroundColorApp"
    tools:context=".ui.main.MainActivity">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@color/colorPrimary"
        app:itemIconTint="@drawable/selector_nav_item"
        app:itemTextColor="@drawable/selector_nav_item"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/bottom_nav_menu">

</androidx.constraintlayout.widget.ConstraintLayout>

bir tek selector_nav_item olmayacaktır. Bunun içinde drawable’a aşağıdaki bir dosya oluşturup (Drawable -> Sağ Tık -> New -> Drawable Resource File) yapıştırmak olacak.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="//schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="@color/colorAccent">
    <item android:color="#777" >
</selector>

Tek yapanız gereken kaldı, Main Activity ‘de kodu yazmak ve çalıştırmak..

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        openFragment(MainFragment())
        init()

    }

    private fun init() {

        bottom_navigation.setOnNavigationItemSelectedListener {
            when (it.itemId) {
                R.id.menu_search -> {
                    openFragment(SearchFragment())
                    true
                }
                R.id.menu_mainpage -> {
                    openFragment(MainFragment())
                    true
                }
                R.id.menu_fav -> {
                    openFragment(FavouriteFragment())
                    true
                }
                else -> false
            }
        }

    }

    fun openFragment(fragment: Fragment?) {
        val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
        transaction.replace(R.id.container, fragment!!)
        transaction.addToBackStack(null)
        transaction.commit()
    }

}

Burada bir Fragment açmak için openFragment metodu yazdık ve sonrasında ilgili menü ‘leri init metodunda setOnNavgiationItemSelectedListener içerisinde when koşuluyla çağırdık..

Kodumuz buraya kadar’dır. İyi Okumalar 🙂

Aşağıdaki sosyal medya hesaplarımdan beni takip edebilirsiniz.

Bu görsel boş bir alt niteliğe sahip; dosya adı unnamed.png Bu görsel boş bir alt niteliğe sahip; dosya adı github-mark-1024x538.png Bu görsel boş bir alt niteliğe sahip; dosya adı 26cba4a440f340e70e99ba87ca76d416.png

One thought on “Android Kotlin Navigation Bottom Bar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir