Метод setDrawerListener устарел

Пока я что-то делаю в своем приложении, я вижу, что панель навигации в моем приложении уменьшила его размер. Но я ничего не делаю по этому поводу.

навигационный ящик

Затем, после проверки кода, я увидел, что setDrawerListener устарела. У кого-нибудь есть решение этого? Любая помощь подойдет. Заранее спасибо!

drawerLayout.setDrawerListener(actionBarDrawerToggle);

6 ответов

Решение

Использование addDrawerListener() вместо.

Заменить:

drawer.setDrawerListener(...);

с

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener) Устанавливает слушателя быть уведомленным о событиях ящика.

Обратите внимание, что этот метод устарел, и вы должны использовать addDrawerListener(DrawerLayout.DrawerListener) добавить слушателя и removeDrawerListener(DrawerLayout.DrawerListener) удалить зарегистрированного слушателя.

Замещать setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);

с addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);

пример

  DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
            assert drawer != null;
            drawer.addDrawerListener(toggle);
            toggle.syncState();

            NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            assert navigationView != null;
            navigationView.setNavigationItemSelectedListener(this);

Думаю, я отвечу на мой вопрос. Последний navigationView выдает его по умолчанию android:layout_height почти 18dp когда вы выбираете "wrap_content", Итак, вы должны выбрать android:layout_height что вы хотите для вашего navigationView или просто сделать android:layout_height="match_parent",

<android.support.design.widget.NavigationView
    android:layout_width="320dp"
    android:layout_height="550dp"
    android:id="@+id/navigation_view_admin"
    android:layout_gravity="start">

</android.support.design.widget.NavigationView>

В любом случае, его высота автоматически увеличивается, когда вы добавляете элемент в ящик навигации.

Наконец, используйте addDrawerListener() вместо setDrawerListener() как сказал Люкси Лю

В официальных документах разработчика Android

использовать:

      addDrawerListener() instead setDrawerListner()
drawer.addDrawerListener(toggle);
toggle.syncState();
Другие вопросы по тегам