Методы и примеры кода для создания читаемой нижней навигации в Android

  1. Использование официального компонента навигации Android.
    Компонент навигации Android предоставляет простой и декларативный способ реализации навигации в вашем приложении. Чтобы создать нижнюю навигацию с помощью этого компонента, вы можете определить граф навигации с несколькими пунктами назначения и использовать виджет BottomNavigationViewдля отображения пользовательского интерфейса навигации. Вот пример:
<!-- activity_main.xml -->
<androidx.coordinatorlayout.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">
    <fragment
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph" />
    <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"
        app:menu="@menu/bottom_navigation_menu" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
// MainActivity.kt
class MainActivity : AppCompatActivity() {
    private lateinit var navController: NavController
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_navigation)
        navController = findNavController(R.id.nav_host_fragment)
        bottomNavigationView.setupWithNavController(navController)
    }
}
  1. Использование собственной реализации.
    Если вы предпочитаете больше контроля над внешним видом и поведением нижней навигации, вы можете создать собственную реализацию с помощью LinearLayoutили ConstraintLayout. Вот пример:
<!-- activity_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageButton
        android:id="@+id/home_button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_home"
        android:contentDescription="@string/home" />
    <ImageButton
        android:id="@+id/search_button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_search"
        android:contentDescription="@string/search" />
    <ImageButton
        android:id="@+id/profile_button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_profile"
        android:contentDescription="@string/profile" />
</LinearLayout>
// MainActivity.kt
class MainActivity : AppCompatActivity() {
    private lateinit var homeButton: ImageButton
    private lateinit var searchButton: ImageButton
    private lateinit var profileButton: ImageButton
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        homeButton = findViewById(R.id.home_button)
        searchButton = findViewById(R.id.search_button)
        profileButton = findViewById(R.id.profile_button)
        homeButton.setOnClickListener { /* Handle home button click */ }
        searchButton.setOnClickListener { /* Handle search button click */ }
        profileButton.setOnClickListener { /* Handle profile button click */ }
    }
}

Это всего лишь два примера того, как можно реализовать удобочитаемую нижнюю навигацию в Android. Не забудьте настроить внешний вид и поведение в соответствии с вашими требованиями.