Как я могу реализовать этот тип округлых BottombavigationBiew? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть следующая панель вкладок, которую я хочу реализовать. Кто-нибудь знает как? См. В приложении enter image description here

Вот что у меня есть

  <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginStart="0dp"
        app:labelVisibilityMode="labeled"
        android:layout_marginEnd="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:menu="@menu/navigation" />

1 Ответ

0 голосов
/ 14 апреля 2020

Попробуйте следующим образом

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import android.widget.Toast
import com.google.android.material.shape.CornerFamily
import com.google.android.material.shape.MaterialShapeDrawable


class MainActivity : AppCompatActivity() {

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

        val radius = resources.getDimension(R.dimen.roundcorner)
        val navViewBackground = bottomNavigationView.getBackground() as MaterialShapeDrawable
        navViewBackground.shapeAppearanceModel = navViewBackground.shapeAppearanceModel
            .toBuilder()
            .setTopRightCorner(CornerFamily.ROUNDED, radius)
            .setTopLeftCorner(CornerFamily.ROUNDED, radius)
            .build()

        bottomNavigationView.setOnNavigationItemSelectedListener { item ->
            when (item.itemId) {
                R.id.action_home -> Toast.makeText(
                    this@MainActivity,
                    "HOME",
                    Toast.LENGTH_SHORT
                ).show()
                R.id.action_favorite -> Toast.makeText(
                    this@MainActivity,
                    "Favorites",
                    Toast.LENGTH_SHORT
                ).show()
                R.id.action_cart -> Toast.makeText(
                    this@MainActivity,
                    "CART",
                    Toast.LENGTH_SHORT
                ).show()
                R.id.action_profile -> Toast.makeText(
                    this@MainActivity,
                    "PROFILE",
                    Toast.LENGTH_SHORT
                ).show()
            }
            true
        }
    }
}

ВЫХОД

image

Полный код можно найти здесь округлено-низкоуровневое навигационное сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...