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.






Geri bildirim: Mayıs Ayı Bülten | Ümit KÖSE