web-dev-qa-db-ja.com

メソッドsetDrawerListenerは推奨されていません。

私は自分のアプリで何かをしている間、私は自分のアプリのナビゲーション用の引き出しがそのサイズを縮小したのを見ます。しかし、私は何もしていません。

navigation drawer

それから、コードをチェックした後、私はsetDrawerListenerが非推奨であることを見ました。誰かがこれに対する解決策を持っていますか?どんな助けでもするでしょう。前もって感謝します!

drawerLayout.setDrawerListener(actionBarDrawerToggle);
214
david glorioso

代わりにaddDrawerListener()を使用してください。

719
Luxi Liu

交換します。

drawer.setDrawerListener(...);

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener)描画イベントを通知されるようにリスナーを設定します。

このメソッドは推奨されていないので、リスナーを追加するにはaddDrawerListener(DrawerLayout.DrawerListener)を、登録済みリスナーを削除するにはremoveDrawerListener(DrawerLayout.DrawerListener)を使用してください。

80
Jzapata

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);
26
sivaBE35

私は私の質問に答えるつもりだと思います。 Android:layout_heightを選択すると、最新のnavigationViewはデフォルトの18dpをほぼ"wrap_content"に生成します。それで、あなたはあなたのnavigationViewに対してあなたが望むAndroid:layout_heightを選ぶか、単に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>

とにかく、ナビゲーションドロワーにアイテムを追加すると自動的に高さが増えます。

最後に、Luxi Liuが言ったようにaddDrawerListener()の代わりにsetDrawerListener()を使ってください。

21
david glorioso