2011-12-22 19 views
6

Android uygulamamda, android developer blog ve diğer yerlerde bulunan ipuçlarını izleyerek ActionBar'ı özelleştiriyorum. ActionBar'daki belirli bir menü öğesini vurgulayabilmek istiyorum. Farklı bir arka plan rengiyle, çünkü özellikle şu anda görülebilen bir fragmana uygulanabilir (aslında bunu ekledi). Bununla birlikte, bunun yapılabileceğine dair bir işaret bulamadım ve henüz kendim yapmadım. Mümkün mü? Öyleyse nasıl?Belirli bir menü öğesi için ActionBar'da farklı görünüm/stil

+0

Biraz farklı bir simge kullanmanın daha kolay olmayacağından emin misiniz? Veya kendi özel şişirilmiş eylem görünümü veya 'ActionProvider' ile gerçekleştirebileceğiniz diğer ön plan değişiklikleri? – CommonsWare

+0

şu anda bunlar metin ve bir simge anlamak daha zor olurdu. Özel eylem görünümü veya ActionProvider açısından ... Buna bakmak zorunda kalacağım. –

+0

Metnin ön plan rengini değiştirebilirsiniz, en azından eylem görünümü/'ActionProvider 'yoluna giderseniz. Ne yazık ki, Android '' etiketini desteklemiyor ... :-) – CommonsWare

cevap

12

Bu yüzden şimdi bunu bir numara ile işe yaradım. İşte ana yakaladım OnClickListener çalışması için menü öğesi eylem görünüm olarak ayarlanır ve görünümde ayarlanmalıdır olmasıdır parça kodu

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

    menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart); 
    if (menuItemCreateCart == null) { 
     menuItemCreateCart = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create); 
    } 

    TextView tv = new TextView(getActivity()); 
    tv.setText(R.string.Create); 
    tv.setTextColor(getResources().getColor(R.color.green)); 
    tv.setBackgroundColor(getResources().getColor(R.color.lightBlue)); 
    tv.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        createCart(); 
       } 
      } 
    ); 
    menuItemCreateCart.setActionView(tv); 

gider. Bu şekilde istediğin her şeyi yapabilirsin.

Ayrıca, özgün olarak ayarlanmış görünümü başlık ile döndürmek için getActionView öğesini kullanamazsınız, çünkü null döndürür. Varsayılan menü öğeleri için gerçek görünümden daha alternatif bir görünüm gibi görünüyor ..

+0

Çalıştığım için :) – Shivansh

İlgili konular