2015-05-19 24 views
7

Bir Android uygulaması, OverflowView olarak bir ImageView ile bir RecyclerView'a veri yüklemek için yapıyorum. Kullanıcılar tıkladığında, seçim yapmak için seçenekler içeren bir PopupMenu görüntülenir. Göstermeyi başarmıştım ama pozisyon doğru görünmüyordu. Lütfen ekran görüntülerine bakın.PopupMenu, RecyclerView içinde doğru şekilde konumlandırılmadı

sadece ilk iki öğe Tamam görünüyor. İşte kaynak kod şunlardır:

view.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    final PopupMenu popupMenu = new PopupMenu(context, view); 
    final Menu menu = popupMenu.getMenu(); 

    popupMenu.getMenuInflater().inflate(R.menu.menu_item_action, menu); 
    popupMenu.setOnMenuItemClickListener(onMenuItemClickListener); 

    switch (Global.listMode) { 
     case Global.LIST_STYLE_NORMAL: { 
     menu.findItem(R.id.action_delete).setVisible(false); 
     break; 
     } 
     case Global.LIST_STYLE_FAVORITE: { 
     menu.findItem(R.id.action_add_to_favorite).setVisible(false); 
     break; 
     } 
     case Global.LIST_STYLE_WATCH_LIST: { 
     menu.findItem(R.id.action_add_to_watch_list).setVisible(false); 
     break; 
     } 
     case Global.LIST_STYLE_DOWNLOAD: { 
     menu.findItem(R.id.action_download).setVisible(false); 
     break; 
     } 
    } 

    itemPosition = (int) view.getTag(R.id.tag_item_position); 
    popupMenu.show(); 
    } 
}); 

siz sorunu beni işaret edebilir, ben aranması için saat sürdü ama yine de şimdi hiçbir şey yukarı bulmuşlardı.

P/S: Tıklatılan düğme kırmızı daire ile işaretlenmiştir.

Herhangi bir yardım için teşekkür ederiz!

+0

Bu, bir uygulama için de üzerinde çalıştığım bir şeydir, bunun için kodunuzun herhangi biri github gibi bir genel forumda yayınlanıyor mu? Menü öğelerinin kendilerine bölümleri olmasını sağlamaya çalışıyorum (IE soldaki bir resim, ortadaki ad, sağdaki açıklama) ama nasıl yapılacağını bulmakta zorlanıyorum. – Silmarilos

cevap

10

Neyse ki, sadece sorunu çözmek için bir yol buldum Sadece dene ve Voila!

+0

Fakat bu daha büyük apis ile çalışıyor mu? –

+0

Benim için çalışıyor! –

+0

'PopupMenu'nun belgeleri," Android 3.0'dan önce platformlarda çalışan uygulamaları yazmak için kullanılır. Android 3.0 veya daha üstü sürümlerde çalışırken, bu uygulama hala kullanılır; çerçevenin uygulamasına geçmeye çalışmaz. " –

1

Oldukça emin değilim, ancak benzer bir sorunun here sayılı yayınlanmış gibi görünüyor ve zaten kabul edilmiş bir cevabı var. Umarım probleminize yardımcı olur. Sadece sorunuza tökezledik ve konuya bağlantıda görüştük ve belki de sizin için yararlı olabileceğini düşündük. , Nedenini bilmiyorum

  • kullanın android.widget.PopupMenu
  • Dürüst final PopupMenu popupMenu = new PopupMenu(context, v);

ile final PopupMenu popupMenu = new PopupMenu(context, view); Değiştir değil android.support.v7.widget.PopupMenu:

İlgili konular