Как сохранить позицию элементов в нижней части навигации в Android - PullRequest
0 голосов
/ 04 мая 2019

Я реализую вид снизу навигации в Android, используя com.google.android.material.bottomnavigation.BottomNavigationView.

Количество элементов в панели может варьироваться от 3 до 4. При изменении номера элемента положение элемента меню на панели также изменяется.

Что бы я хотел, это сохранить позицию для первого и последнего элемента.

В настоящее время я понятия не имею, как это сделать.

См. На изображении текущий и ожидаемый результат.

retain item position in bottom navigation view

1 Ответ

0 голосов
/ 08 мая 2019

попробуйте использовать это:

Во-первых, код для нижнего навигационного представления и фрагментов будет помещен в MainActivity и Activitymain.Во-вторых, создайте три фрагмента и, наконец, создайте меню с 3 пунктами меню.

Примеры снимков экрана:

enter image description here

Пример кода:

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout 
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools">


    <android.support.design.widget.BottomNavigationView
         android:id="@+id/bottom_navigation"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         app:menu="@menu/item"/>

    </android.support.constraint.ConstraintLayout>

MainActivity

  private void setupNavigationView() {
    BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
    if (bottomNavigationView != null) {

        Menu menu = bottomNavigationView.getMenu();
        selectFragment(menu.getItem(0));

        bottomNavigationView.setOnNavigationItemSelectedListener(
                new BottomNavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                        selectFragment(item);
                        return false;
                    }
                });
        }
 }


protected void selectFragment(MenuItem item) {

    item.setChecked(true);

    switch (item.getItemId()) {
        case R.id.action_home:
            fragmentRe(new fragmentOne());
            break;
        case R.id.action_profile:
            fragmentRe(new fragmentTwo());
            break;
        case R.id.action_work:
            fragmentRe(new fragmentThree());
            break;
     }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...