2015-06-25 17 views
21

我的問題很簡單,如何在NavigationView上爲Material Design Drawer這樣的項目添加通知值權限?如何在MaterialView抽屜的NavigationView上添加項目的通知值?

enter image description here

是否有定義抽屜中的菜單項的屬性?

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

    <group 
     android:checkableBehavior="single"> 

     <item 
      android:id="@+id/drawer_home" 
      android:checked="true" 
      android:icon="@drawable/ic_home_black_24dp" 
      android:title="@string/home"/> 

     <item 
      android:id="@+id/drawer_favourite" 
      android:icon="@drawable/ic_favorite_black_24dp" 
      android:title="@string/favourite"/> 
     ... 

     <item 
      android:id="@+id/drawer_settings" 
      android:icon="@drawable/ic_settings_black_24dp" 
      android:title="@string/settings"/> 

    </group> 
</menu> 
+1

因爲你必須在導航視圖中創建自己的'listview'。因爲'NavigationView'不會有太大的靈活性。 – Moinkhan

+1

@Moinkhan確切的說,我的問題是View導航組件是否至少具有這種靈活性。良好的做法越來越多地使用這個組件,所以... –

+0

@Moinkhan此外,ListView現在被RecyclerView所取代。 –

回答

11

此使用行爲的看法是可能的NavigationView從程序兼容性-V7版本23。 1.爲計數器創建一個佈局,例如nav_drawer_counter.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical" 
    android:textColor="@color/colorPrimary"/> 
  • 添加從每個項目的一個引用,你想在你的menu/nav_drawer.xml以顯示計數器值(確保你使用app命名空間):

    <item 
        ... 
        app:actionLayout="@layout/activity_main_nav_drawer_menu_counter" 
        /> 
    
  • 添加的方法的值設置爲例如TextView

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    .... 
    setNavItemCount(R.id.nav_notifications, 10); 
    } 
    
    
    private void setNavItemCount(@IdRes int itemId, int count) { 
    TextView view = (TextView) navigationView.getMenu().findItem(itemId).getActionView(); 
    view.setText(count > 0 ? String.valueOf(count) : null); 
    } 
    
  • +0

    真棒...................感謝兄弟。 – Vicky

    0

    從一些研究中,我發現,沒有,沒有真正的方法將通知添加到抽屜中。但是,開發人員的Creating a Navigation Drawer教程中顯示的示例演示瞭如何在每次打開時強制重繪(以及如何使用Menu XML表單來實現它)。它沒有詳細說明如何添加通知,但還有其他來源。

    This tutorial是另一個「如何製作導航抽屜」教程,其中詳細介紹瞭如何修改ListView適配器以適應通知按鈕。我認爲這很可能是你正在尋找的。

    祝你好運!我希望有所幫助。

    5

    哦是的...您可以更改該計數器值。

    從您提供的圖像看起來生活使用的是Rudson Lima's Material Design Navigation Drawer

    在它的圖書館有類NavigationLiveo內部功能public void setNewCounterValue(int drawerItemPosition, int counterValue);

    希望你能正確使用它的對象來調用這個函數。

    祝您好運... :-)

    +0

    到目前爲止,你已經得到了最好的答案這個問題,我給你這麼賞金。儘管如此,我認爲現在根本不可能不使用庫...我希望Google會更新其NavigationView組件,以便在本地啓用它。 –

    +0

    謝謝......並且您是正確的,它在NavigationView支持庫中仍然不可用。希望Google能儘快給大家。 –

    相關問題