Soru Method setDrawerListener kullanımdan kaldırıldı


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

navigation drawer

Ardından, kodu kontrol ettikten sonra setDrawerListener'ın kullanımdan kaldırıldığını gördüm. Bunun bir çözümü var mı? Herhangi bir yardım yapacak. Şimdiden teşekkür ederim!

drawerLayout.setDrawerListener(actionBarDrawerToggle);

199
2018-02-25 22:14


Menşei


Kullanımdan kaldırılan kodun muhtemelen çekmece boyutuyla ilgisi yoktur. Gelecekte bunun için desteği kaldıracakları anlamına gelir (belirli yöntem). Muhtemelen bir addDrawerListener ile değiştirilir ama emin değilim. - chRyNaN
Görüyorum .. ama herhangi bir problem göremiyorum, sadece o çekmeceye bağlı olmayan yeni bir parça yarattım .. bu şeyin neden olduğunu gerçekten anlayamıyorum ... - david glorioso
hangi kütüphane sürümünü kullanıyorsunuz? - Amit Vaghela
Ben bu >> compile 'com.android.support:appcompat-v7:23.2.0' kullanıyorum, 'com.android.support:design:23.2.0' derleyin, 'com.android.support:support-v4 derleyin : 23.2.0' - david glorioso


Cevaplar:


kullanım addDrawerListener() yerine.


675
2018-02-26 04:30



Kabul edilen cevap olmalı. - Kate
Niye ya. Basitçe, Neden. - Broak
Neden bu saçmalığı yapıyorlar? - Alex Wohlbruck
API tutarlılığı için. Eklediler removeDrawerListener() yani add... eşleşecek şekilde adlandırıldı - Marcin Orlowski
en azından dahil olabilirler use 'addDrawerListener' instead kullanımdan kaldırılmış mesaja! - AaA


Değiştir:

drawer.setDrawerListener(...);

ile

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener) Çekmece olaylarından haberdar edilmek üzere bir dinleyici ayarlar.

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


77
2018-02-28 03:46



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


değiştirmek setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);

ile addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);

örnek 

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

24
2018-05-18 12:14





Sanırım soruma cevap vereceğim. En son navigationView varsayılanını üretir android:layout_height neredeyse 18dp ne zaman istersen "wrap_content". Yani, seçmelisiniz android:layout_height senin için istediğin navigationView ya da sadece 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ükseklik otomatik olarak artar.

Son olarak, kullanım addDrawerListener() yerine setDrawerListener() Luxi Liu'nun dediği gibi.


22
2018-02-27 07:06



Luxi Liu'nun cevabını neden kabul etmedin? - Lion789
çünkü bu benim ana sorum değil. göremiyor musun Lütfen sorunumu daha önce okuyun ... Bu sadece kullanımdan kaldırılan şey değil, - david glorioso
Sonra sorunuzun başlığı düzeltilebilir - Sharique Abdullah