SetDrawerListener yöntemi kullanımdan kaldırıldı


226

Uygulamamda bir şey yaparken, uygulamamdaki gezinme çekmecesinin boyutunu azalttığını görüyorum. Ama bu konuda hiçbir şey yapmıyorum.

Gezinme çekmecesi

Sonra, kodu kontrol ettikten sonra setDrawerListener'ın kullanımdan kaldırıldığını gördüm. Bunun bir çözümü olan var mı?

drawerLayout.setDrawerListener(actionBarDrawerToggle);

9
Kullanımdan kaldırılan kodun çekmece boyutuyla ilgisi yoktur. Bu, gelecekte desteğini kaldıracağı anlamına gelir (belirli yöntem). Muhtemelen bir addDrawerListener ile değiştirilir, ancak bundan emin değilim.
chRyNaN

anlıyorum .. ama herhangi bir sorun göremiyorum, sadece o çekmeceye bağlı olmayan yeni bir parça yarattım .. o şeyin neden olduğunu gerçekten anlayamıyorum ...
david glorioso

hangi kütüphane sürümünü kullanıyorsunuz?
Amit Vaghela

Bu >> 'com.android.support:appcompat-v7:23.2.0' derleme 'com.android.support:design:23.2.0' derleme, 'com.android.support:support-v4 derleme : 23.2.0 '
david glorioso

Yanıtlar:


751

addDrawerListener()Bunun yerine kullanın .


13
Neden. Basitçe, Neden.
Broak

9
Neden bu saçmalıkları
yapıyorlar

7
API tutarlılığı için. Onlar eklenen removeDrawerListener()bu yüzden add...aynı adlı
Marcin ORLOWSKI

26
en azından use 'addDrawerListener' insteadkullanımdan kaldırılmış mesaja dahil edilebilirler!
AaA

1
Yani ... birden fazla çekmece dinleyicisi ekleyebilir miyiz?
Kenny Worden

85

Değiştir:

drawer.setDrawerListener(...);

ile

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener) Bir dinleyiciyi çekmece olayları hakkında bilgilendirilecek şekilde ayarlar.

Bu yöntemin kullanımdan kaldırıldığını ve addDrawerListener(DrawerLayout.DrawerListener)bir dinleyici eklemek ve removeDrawerListener(DrawerLayout.DrawerListener)kayıtlı bir dinleyiciyi kaldırmak için kullanmanız gerektiğini unutmayın .


18
Çekmece dinleyicisini nereden çıkarmalıyız ve bu gerekli mi?
portfoliobuilder

@portfoliobuilder Değişir. Genellikle, gerekli değildir. Eğer bunu ayarlarsanız onCreate()ve ekran Bütün aktivitenin yeniden oluşturulur ve yeni dinleyici ayarlanır döndürün. Daha karmaşık vakalar (muhtemelen) 1'den fazla dinleyiciye ihtiyaç duyulmadığı düşüncesiyle ele alınmalıdır DrawerLayout.
Johnny Five

29

değiştirmek setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);

ile addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);

misal

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

22

Sanırım soruma cevap vereceğim. En son navigationView, varsayılanı android:layout_heightneredeyse 18dpseçtiğinizde üretir "wrap_content". Yani, sizin android:layout_heightiçin istediğinizi seçmeniz navigationViewveya basitçe yapmanız gerekir 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>

Her neyse, gezinme çekmecesine bir öğe eklediğinizde yüksekliği otomatik olarak artar.

Son olarak, Kullanım addDrawerListener()yerine setDrawerListener()Luxi Liu söylediği gibi.


6
çünkü bu benim asıl sorum değil. görmüyor musun Lütfen daha önce sorunumu okuyun ... Bu sadece kullanımdan kaldırılmış bir şey değil,
david glorioso

7
O zaman sorunuzun başlığını düzeltmek olabilir
Sharique Abdullah
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.