10

Uygulamamızda, tam ekran fragmanları veya iletişim parçaları olarak gösterilebilecek birkaç parçamız var. Bu fragmanlar, DialogFragment'dan devralınır ve uygulamanın çalıştırıldığı moda (tam ekran veya iletişim kutusu) bağlı olarak bunları doğru bir şekilde oluşturduğunuzdan emin oluruz.DialogFragment aracında Araç Çubuğu

Toolbar widget'ındaki en son değişiklikler Lollipop ile destek kitaplığında tanıtıldıktan sonra bu iletişim parçalarının bazılarına bazı ekstra işlevler eklemeyi düşündük. Buradaki fikir, normal olarak normal bir parçada (yani, onCreateOptionsMenu'un ardından şişirilen seçenekler menüsü), SADECE DialogFragment alt sınıflarımızda mevcut olan seçenekler diyalog penceresi olarak görüntülendiğinde seçenekler menüsüne sahip olmaktır. Kısacası: parçalar tam ekran modunda gösterildiğinde, geleneksel seçenekler menüsünü şişiriyoruz ve fragmanlar diyaloglar olarak gösterildiğinde, aynı seçenekler menüsünün şişirilmesini istiyoruz ancak yeni araç çubuğu küçük aracını bağımsız modda kullanıyoruz.

http://android-developers.blogspot.dk/2014/10/appcompat-v21-material-design-for-pre.html arasındaki adımları izledim ve araç çubuğunu "etkinleştirmeyi" başardım, ancak menü şişirilmiş değil gibi görünüyor - ekli ekran görüntülerine bakın (tam ekran modunda resim bir parçası ve iletişim modunda resim iki).

Bir seçenek menüsünü DialogFragment'daki yeni araç çubuğu ile şişirmek mümkün mü?

fullscreen modedialog mode

+1

Çubuğu bir diyalog içinde olmak varsayalım değildir, senin parçan olarak varsayalım r etkinlik düzeni. Bu, – tyczj

cevap

20

bir seçenek şişirmek için bile mümkün mü 'daki yeni araç çubuğuna sahip bir menü DialogFragment? Tüm tasarımının ilk

Tamam ve araç çubuğu kullanılacak gerekiyordu edilir Chris Banes google mühendisi link gelen şuna bir bakalım nereye her:

// Set an OnMenuItemClickListener to handle menu item clicks 
toolbar.setOnMenuItemClickListener(
     new Toolbar.OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // Handle the menu item 
       return true; 
      } 
}); 

// Inflate a menu to be displayed in the toolbar 
toolbar.inflateMenu(R.menu.your_toolbar_menu); 

ve ayrıca android geliştirici araç çubuğu tek başına numune:

http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

+0

Teşekkürler.Chris Banes'in görevine eklediği resim bunu kanıtladığından,% 100 olumlu olabilirdim. Onun mesajını 5 kez :-) okuduğumdan sonra bulduğum :-) –

+0

Uygulama hakkında (burada bulunanlar: https://play.google.com/store/apps/details?id=com.google.samples.apps .iosched), bir ekran görüntüsü: https://lh3.googleusercontent.com/Xwh9uUA-TvDYAFtadcPrR578GJGxbZu5Z2KuUv5U0v3QqzvQzpHR9nuDMUhMsPgVbS8=h900 –

4

Evet, DialogFragment() fonksiyonu setHasOptions sahiptir. Araç çubuğunu iletişim kutunuzun düzeninde tanımlayın ve bir etkinlikte olduğu gibi kullanın. Bir etkinlik veya bunun bir parçası veya bir iletişim parçası olmak bir araç çubuğu doesnt zihni .......

her zamanki geçersiz kılma gibi Sonra

setHasOptionsMenu(true) in onActivityCreated method.... 

kullandığından emin olun

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.my_menu, menu); 
} 

ve

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    return super.onOptionsItemSelected(item); 
} 
+0

olmasını istediğiniz çok kafa karıştırıcı bir arabirimdir Eğer kablolamıyor ve menüyü şişirmezsem, tek başına "Araç Çubuğu" nu nasıl kullanabilirim? Çözümünüz, ana makine etkinliğinde belirtilen varsayılan seçenekler menüsünü geçersiz kılar. Bir iletişim parçasının –

+0

araç çubuğuna sahip olmasını sağlamaz .... setActionBar (myToolbar) –

+0

'u kullanarak aynı şeyi kullandım Bu işe yaramıyor. Bunun yerine, etkinliğin araç çubuğunu kendisi ele alır. –

İlgili konular