Как поставить андроид BottomAppBar с закругленными углами - PullRequest
0 голосов
/ 28 января 2019

Я использую BottomAppBar от Google следующим образом:

 <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/vNavigationBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

Пользовательская нижняя панель плоская, и мне нужно добавить закругленные углы на нижней панели (пример изображения ниже)

Bottom bar example

Что я должен сделать, чтобы это работало таким образом?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

в соответствии с этим , вы можете создать свой класс customView, расширенный из BottomAppBar, и реализовать следующий код:

`@Override protected void onLayout(boolean changed, int left, int top, int 
 right, int bottom) {
 super.onLayout(changed, left, top, right, bottom);
 }
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    mNavigationBarWidth = getWidth();
    mNavigationBarHeight = getHeight();
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    mPath.reset();
    mPath = RoundedRect(0, 0, mNavigationBarWidth, mNavigationBarHeight, 50, 50, true);
    canvas.drawPath(mPath, mPaint);
}

`

запомнить только в каждом конструктореваш пользовательский класс, сделайте это:

mPath = new Path();
    mPaint = new Paint();
    mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
    mPaint.setColor(Color.WHITE);
    setBackgroundColor(Color.TRANSPARENT);
0 голосов
/ 28 января 2019

Вы можете попробовать добавить xml-файл для рисования фигур и добавить в него следующий код

<corners
    android:topLeftRadius="16dp"
    android:topRightRadius="16dp" />

И затем установить фон BottomAppBar для рисования

...