2015-07-21 22 views
7

Alt menü öğeleri içeren bir bölüm içeren bir NavigationView tanımladığımızda.Bir NavigationView öğesinde alt menü öğelerinin girintisi nasıl değiştirilir?

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:title="Sub items"> 
    <menu> 
     <item 
      android:icon="@drawable/ic_transparent" 
      android:title="Sub item 1" /> 
     <item 
      android:icon="@drawable/ic_transparent" 
      android:title="Sub item 2" /> 
    </menu> 
</item> 
</menu> 

enter image description here

Fakat tarafından: Ben pad doğru boyutta şeffaf bir resim ekleyerek çalıştı

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:title="Sub items"> 
    <menu> 
     <item 
      android:title="Sub item 1" /> 
     <item 
      android:title="Sub item 2" /> 
    </menu> 
</item> 
</menu> 

enter image description here

: Bu bölümün başlığıyla birlikte alt öğeleri hizalar sol varsayılan olarak NavigationView:

  1. metin
  2. bir düzeltmeleri bu dolgu ne de simge boyutu nasıl yapılandırılacağı bulamadık kendi simgesini

üzerinde boyutu zorlar simgesi arasında sabit bir dolgu ekler.

Soru Alt öğeler girintisini nasıl değiştirebiliriz, böylece alt öğeler daha girintili olur?

Saydam görüntüleri eklemek yerine bir öznitelik kullanarak temizlemeyi tercih ediyorum.

+0

Merhaba, bunun için bir çözüm buldunuz mu? – Noundla

+0

Henüz değil. Bunu yayınladığımdan beri buna bakmadım. Diğer yüksek öncelikli çalışmaları tamamlamanız gerekiyor. Ancak, belki de bu, girintiye sahip olmanın daha iyi bir tasarım olmadığını düşünmeye başlıyorum - her şeyden sonra, Materyal Tasarım yönergelerinde önerilenleri görmedim. Bunu önümüzdeki birkaç hafta içinde tekrar inceleyeceğim. Bu yüzden bir güncelleme göndereceğim. –

+0

@Noundla Buna tekrar baktıktan sonra, bunu yapmanın bir yolunu bulamadım. Benim şu anki alışkanlığım, Materyal Tasarım yönergelerinde teşvik edilmemesidir, bu yüzden Android'de en iyi uygulamayı düşünmüyorum, bundan dolayı bundan uzak duruyorum. Bunun yerine, daha iyi bir yaklaşım, gruplamayı göstermek için her menü sırasının arka plan ve ön plan renklerini kullanmaktır. Bunu bir dizi uygulamada güzelce yaptığımı gördüm. FYI ön plan rengi ile ne demek istediğim metin rengidir. Gruplama ve durumun farklı yönlerini vurgulamak için yazı tipi türlerini de entegre edebilirsiniz. –

cevap

2

Yanıtı aldığınızdan emin değilim ancak aynı sorunla karşılaştım ve MaterialDrawer - https://github.com/mikepenz/MaterialDrawer kullanarak sona erdi.

SecondaryDrawerItem öğesini genişletmeniz ve dolgu maddesini bindView onPostBindView ürününe eklemeniz gerekir.

drawer = new DrawerBuilder() 
      .withActivity(this) 
      .withHeader(drawerHeader) 
      .withSavedInstance(savedInstanceState) 
      .addDrawerItems(
        new PrimaryDrawerItem().withName("Item1"), 
        new CustomSecondaryDrawerItem().withName("SubItem1"), 
        new CustomSecondaryDrawerItem().withName("SubItem2") 
      ) 
      .build(); 

CustomDrawerSecondaryItem.java

public class CustomSecondaryDrawerItem extends SecondaryDrawerItem { 

    @Override 
    public void onPostBindView(IDrawerItem drawerItem, View view) { 

     Context ctx = view.getContext(); 

     int paddingLeft = ctx.getResources().getDimensionPixelSize(R.dimen.drawer_secondary_item_padding_left); 
     view.setPadding(paddingLeft, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom()); 

     super.onPostBindView(drawerItem, view); 

    } 
} 
8

Yasal Uyarı

O girinti doğru bir yaklaşım değildir neden düşündüklerini açıklamak ana soru üzerine Noundla benim yoruma bakın. Bunun üzerine

Cevap

Eğer zorunluluk girinti varsa basit yolu yastığına boşluk ile her menü öğesi olduğunu söyledi. Bu ideal değildir, ancak daha iyi bir seçenek mevcut olduğunda uygulanması, anlaşılması ve değiştirilmesi basittir. Ve ile çalışır dahili NavigationView Android harici kütüphaneleri tanıtmak zorunda kalmadan: Bu birileri orada zaman kazandırır umut

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:title="Sub items"> 
    <menu> 
     <item android:title="&#160;&#160;&#160;&#160;Sub item 1" /> 
     <item android:title="&#160;&#160;&#160;&#160;Sub item 2" /> 
    </menu> 
    </item> 
</menu> 

:

İşte çalışacak kod örneğidir.