Coder Social home page Coder Social logo

vikramkakkar / sublimenavigationview Goto Github PK

View Code? Open in Web Editor NEW
309.0 309.0 42.0 3.09 MB

...is a complete rewrite of NavigationView (from Design Support library) that enables - usage of Checkboxes, Switches & Badges as menu items - XML definition - Parcelable menus - collapsible/expandable menu-groups - multiple menus - custom styling.

License: Apache License 2.0

Java 100.00%

sublimenavigationview's People

Contributors

vikramkakkar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sublimenavigationview's Issues

Error on Click GroupItem when Group is collapsing

Hi Everyone, i have an issue when i click on a groupitem while the group is collapsing.
I need to know how solve this problem because is a common error to make by the user.

com.example.project E/AndroidRuntime: FATAL EXCEPTION: main java.lang.ArrayIndexOutOfBoundsException: length=40; index=-1 at java.util.ArrayList.get(ArrayList.java:306) at com.appeaser.sublimenavigationviewlibrary.SublimeMenuPresenter$MenuRecyclerAdapter.getItem(SublimeMenuPresenter.java:405) at com.appeaser.sublimenavigationviewlibrary.SublimeMenuPresenter$BaseHolder.onClick(SublimeMenuPresenter.java:204) at android.view.View.performClick(View.java:4084) at android.view.View$PerformClick.run(View.java:16966) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method)

The OnClickListener setted to Header isn't working

headerView = navView.getHeaderView();
                    if (headerView != null) {
			headerView.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View view) {
					startActivity(new Intent(MainActivity.this, LoginActivity.class));
				}
			});

The startActivity method isn't called.

Android 7.x BadParcelableException: ClassNotFoundException when unmarshalling: com.appeaser.sublimenavigationviewlibrary.SublimeMenu

Hello,

Since few weeks I'm experiencing this crash on devices running Android 7.x (7.0 & 7.1.1 for now)
BadParcelableException: ClassNotFoundException when unmarshalling: com.appeaser.sublimenavigationviewlibrary.SublimeMenu

This crash came from SublimeNavigationView.java line 479

if (menuState != null && menuState.containsKey(SS_MENU)) { mMenu = menuState.getParcelable(SS_MENU); }
Code inside onRestoreInstance method.

Here is the linked menu if it's can help. I tried to track the error from my own code but it appears that the crash only linked to the library :/

`

<Group android:checkableBehavior="single">
    <Text
        android:id="@+id/id1"
        android:title="@string/app_name"
        android:enabled="true" />
    <TextWithBadge
        android:id="@+id/id2"
        android:title="@string/string2"
        />
    <Text
        android:id="@+id/id3"
        android:checked="false"
        android:title="@string/string3"/>

    <Text
        android:id="@+id/id4"
        android:checked="false"
        android:title="@string/string4"/>

    <Text
        android:id="@+id/id5"
        android:checked="false"
        android:title="@string/string5"
        />
    <Text
        android:id="@+id/id6"
        android:checked="false"
        android:title="@string/string6"
        />

    <Text
        android:id="@+id/id7"
        android:checked="false"
        android:title="@string/string7"/>

</Group>
`

Moreover the problem seems to be random (or at least I have not found yet the source of the crash).

Have you an idea or a fix?

Thanks

Cannot add seperator item programmatically

I create all navigation items programmatically, because i get data from network.

So, after some struggle, i almost achieved what i need. But i couldn't add menu seperator item.
Btw, it would be useful if you add some sample for adding menu items programmatically.

My current code:

private void drawNavigations(Headers headers) {
        mHeaders = headers;

        //clear added items/groups
        mMenu.clear();

        SublimeGroup mainGroup = mMenu.addGroup(false, false, true, true, SublimeGroup.CheckableBehavior.NONE);

        ArrayList<Article> articles = mHeaders.getArticles();
        for(int i = 0; i < articles.size(); i++) {
            Article article = articles.get(i);

            //if article has children, create expandable menu item
            if (article.getSubArticles().size() > 0) {
                SublimeGroup sublimeGroup = mMenu.addGroup(true, true, true, true, SublimeGroup.CheckableBehavior.NONE);

                //title of menu
                mMenu.addGroupHeaderItem(sublimeGroup.getGroupId(), article.getTitle(), article.getDescription(), false);

                //create & add new item with self path, to open parent article
                Article allArticleItem = new Article();
                allArticleItem.setTitle("All").setPath(article.getPath());
                mHeaders.getArticles().get(i).getSubArticles().add(0, allArticleItem);

                //add children
                ArrayList<Article> subArticles = article.getSubArticles();
                for(int i1 = 0; i1 < subArticles.size(); i1++) {
                    Article subArticle = subArticles.get(i1);
                    SublimeBaseMenuItem sublimeBaseMenuItem = mMenu.addTextItem(sublimeGroup.getGroupId(), subArticle.getTitle(), subArticle.getDescription(), true);
                    //set navId, to handle click
                    mHeaders.getArticles().get(i).getSubArticles().get(i1).setNavigationId(sublimeBaseMenuItem.getItemId());
                }
            } else { // else just text item
                mMenu.addTextItem(mainGroup.getGroupId(), article.getTitle(), article.getDescription(), false);
            }
        }

        SublimeGroup lastGroup = mMenu.addGroup(false, false, true, true, SublimeGroup.CheckableBehavior.NONE);
        mMenu.addSeparatorItem(lastGroup.getGroupId()); //(doesn't work)

        settingsBaseMenu = mMenu.addTextItem(lastGroup.getGroupId(), getString(R.string.preferences_title), null, true);
        settingsBaseMenu.setIcon(R.drawable.ic_settings);

        sloganView.setText(mHeaders.getSlogan());
        mMenu.finalizeUpdates();
    }

xml:

<com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/navigation"
    android:layout_width="304dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:background="@color/white"
    app:snvHeaderLayout="@layout/navigation_header"
    app:snvMenu="@menu/navigation"/> 

P.S: @menu/navigation is empty, added so i could see preview of headerLayout (not showing if snvMenu not set)

Screenshot:

I didn't add settings menu item and seperator item to xml because there is no api for adding groups before other items/groups.

Thanks.

svnHeaderLayout & svnMenu

Can I create my SublimeNavigation without use this code in xml of navigation menu
app:snvHeaderLayout="@layout/nav_header"
app:snvMenu="@menu/navigation_menu"

????

NullPointerException: at readParcel

Crashes sometimes with following exception:

java.lang.RuntimeException: Unable to start activity ComponentInfo{tm.asmanoky.aziada/tm.asmanoky.aziada.ui.activity.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                        at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                     Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                        at android.os.Parcel.readTypedList(Parcel.java:2029)
                                                                        at com.appeaser.sublimenavigationviewlibrary.SublimeMenu.readParcel(SublimeMenu.java:1321)
                                                                        at com.appeaser.sublimenavigationviewlibrary.SublimeMenu.<init>(SublimeMenu.java:1315)
                                                                        at com.appeaser.sublimenavigationviewlibrary.SublimeMenu$2.createFromParcel(SublimeMenu.java:1348)
                                                                        at com.appeaser.sublimenavigationviewlibrary.SublimeMenu$2.createFromParcel(SublimeMenu.java:1346)
                                                                        at android.os.Parcel.readParcelable(Parcel.java:2367)
                                                                        at android.os.Parcel.readValue(Parcel.java:2264)
                                                                        at android.os.Parcel.readArrayMapInternal(Parcel.java:2614)
                                                                        at android.os.BaseBundle.unparcel(BaseBundle.java:221)
                                                                        at android.os.BaseBundle.getBoolean(BaseBundle.java:659)
                                                                        at android.app.Activity.restoreHasCurrentPermissionRequest(Activity.java:6444)
                                                                        at android.app.Activity.performCreate(Activity.java:6250)
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:148) 
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Category check behaviour single for multiple groups

Hi i loved this library, thank you vik!

the only thing im missing from the default nav drawer is the behaviour when you have multiple groups and single selectable, it removes the background/checked status from all others groups

example:

Using your library:

Group 1 (Checkable= single)
- Item 1 (if i click here it become checked, with background)
- Item 2 (if i click here, remove blackground from item 1 and check this one)


Group 2 (Checkable = single)
- Item 3 (if i click here, this becomes checked with background, BUT it doesnt remove the background from group 1 checked item, why?)
- Item 4

another thing is when you click an menu item, it call prepareMenuItems 2 Times, is that normal?

02-03 19:26:13.887 3863-3863/com.leifacil.vademecum I/TAG: Item clicked
02-03 19:26:13.887 3863-3863/com.leifacil.vademecum I/SublimeMenu: prepareMenuItems()
02-03 19:26:13.888 3863-3863/com.leifacil.vademecum I/SublimeMenu: prepareMenuItems()

Crash on onRestoreInstanceState

@vikramkakkar Hi, if you release the newest version, could you please look into this crash.
It crashes after returning to the app when it was closed for a long time.

Thanks

07-29 09:27:36.397 19264-19264/? E/Parcel: Class not found when unmarshalling: com.appeaser.sublimenavigationviewlibrary.SublimeMenu java.lang.ClassNotFoundException: com.appeaser.sublimenavigationviewlibrary.SublimeMenu at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at android.os.Parcel.readParcelableCreator(Parcel.java:2404) at android.os.Parcel.readParcelable(Parcel.java:2358) at android.os.Parcel.readValue(Parcel.java:2264) at android.os.Parcel.readArrayMapInternal(Parcel.java:2614) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.containsKey(BaseBundle.java:269) at com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView.onRestoreInstanceState(SublimeNavigationView.java:479) at android.view.View.dispatchRestoreInstanceState(View.java:14752) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3121) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127) at android.view.View.restoreHierarchyState(View.java:14730) at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2035) at android.app.Activity.onRestoreInstanceState(Activity.java:1008) at android.app.Activity.performRestoreInstanceState(Activity.java:963) at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1163) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5422) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: com.appeaser.sublimenavigationviewlibrary.SublimeMenu at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at java.lang.Class.classForName(Native Method)  at java.lang.Class.forName(Class.java:324)  at android.os.Parcel.readParcelableCreator(Parcel.java:2404)  at android.os.Parcel.readParcelable(Parcel.java:2358)  at android.os.Parcel.readValue(Parcel.java:2264)  at android.os.Parcel.readArrayMapInternal(Parcel.java:2614)  at android.os.BaseBundle.unparcel(BaseBundle.java:221)  at android.os.BaseBundle.containsKey(BaseBundle.java:269)  at com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView.onRestoreInstanceState(SublimeNavigationView.java:479)  at android.view.View.dispatchRestoreInstanceState(View.java:14752)  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3121)  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127)  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127)  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127)  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127)  at android.view.View.restoreHierarchyState(View.java:14730)  at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2035)  at android.app.Activity.onRestoreInstanceState(Activity.java:1008)  at android.app.Activity.performRestoreInstanceState(Activity.java:963)  at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1163)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.-wrap11(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5422)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Suddenly graddle stopped working

Half-hour ago everything was okay, then i cleaned and rebuild my project for unrelated reasons, and then the android studio can't resolve it anymore.

Here's the graddle that i use:
compile group: "com.github.vikramkakkar", name: "SublimeNavigationView", version: "dev-SNAPSHOT", changing: true

I also tried:
compile 'com.github.vikramkakkar:SublimeNavigationView:dev-df7ecdadaa-1'

Neither is working, and in the last try the error message was:
Error:Project app: apk dependencies can only be jars. com.github.vikramkakkar:SublimeNavigationView:aar:dev-SNAPSHOT is an Android Library.

runTime Exception

Activity A (has the drawer) call and start Activity B(doesnt has drawer) go to home pressing the home button, close activity using android task switcher, click in the Icon to open the Application again:

02-05 17:47:24.502 30419-30419/com.leifacil.vademecum E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.leifacil.vademecum, PID: 30419
                                                                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.leifacil.vademecum/com.leifacil.vademecum.Activities.NovaTelaPrincipal}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.appeaser.sublimenavigationviewlibrary.SublimeMenu
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
                                                                            at android.app.ActivityThread.access$900(ActivityThread.java:157)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:148)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5525)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
                                                                         Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.appeaser.sublimenavigationviewlibrary.SublimeMenu
                                                                            at android.os.Parcel.readParcelableCreator(Parcel.java:2411)
                                                                            at android.os.Parcel.readParcelable(Parcel.java:2337)
                                                                            at android.os.Parcel.readValue(Parcel.java:2243)
                                                                            at android.os.Parcel.readArrayMapInternal(Parcel.java:2592)
                                                                            at android.os.BaseBundle.unparcel(BaseBundle.java:221)
                                                                            at android.os.BaseBundle.containsKey(BaseBundle.java:269)
                                                                            at com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView.onRestoreInstanceState(SublimeNavigationView.java:479)
                                                                            at android.view.View.dispatchRestoreInstanceState(View.java:14774)
                                                                            at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3123)
                                                                            at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3129)
                                                                            at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3129)
                                                                            at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3129)
                                                                            at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3129)
                                                                            at android.view.View.restoreHierarchyState(View.java:14752)
                                                                            at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2056)
                                                                            at android.app.Activity.onRestoreInstanceState(Activity.java:1009)
                                                                            at android.app.Activity.performRestoreInstanceState(Activity.java:964)
                                                                            at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1163)
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2407)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 
                                                                            at android.app.ActivityThread.access$900(ActivityThread.java:157) 
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                            at android.os.Looper.loop(Looper.java:148) 
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5525) 
                                                                            at java.lang.reflect.Method.invoke(Native Method) 
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 

i cant simulate the Android GC after some time, but i think the result will be the same, how can i avoid it? since it commom to user stay in my second activity (B) and than reopen the application(clicking in the application icon)

Multi Touch on menuItems

Hi everyone, I would like to know if it is possible to disable the option of pressing multiple items at the same time for the menu.
I was researching but I can not find a way to do this

Best Regards

Ability to set itemID

i saw that the is generated using the number of items, is there any way to make a setItemId?

why:

in my nav drawer, user can create ITEMS (categories) and than add some items to this categories, in this way that the Sublime do, all the time will have a new ID if i delete or add another item, this make a big mess in the categories, since its linked produts -> itemID(categorie)

Menu items have pink text color on Android O

Hey.

I noticed that my app navigation menu have weird pinkish text color on menu items. I installed SublimeNavigationView app from Play Store to check if the issue with the library.

Screenshot

Update

Here is a warning log:

W/ResourceType: Invalid package identifier when getting bag for resource number 0xffffffff
06-13 20:38:01.041 29042-29042/tm.my.app W/Resources: ColorStateList android:color/text_color_primary has unresolved theme attributes! Consider using Resources.getColorStateList(int, Theme) or Context.getColorStateList(int).
 java.lang.RuntimeException
     at android.content.res.Resources.getColorStateList(Resources.java:990)
     at com.appeaser.sublimenavigationviewlibrary.TextViewStyleProfile.setDefaultItemTextColor(TextViewStyleProfile.java:149)
     at com.appeaser.sublimenavigationviewlibrary.TextViewStyleProfile.getTextColor(TextViewStyleProfile.java:117)
     at com.appeaser.sublimenavigationviewlibrary.SublimeSubheaderItemView.initialize(SublimeSubheaderItemView.java:70)
     at com.appeaser.sublimenavigationviewlibrary.SublimeMenuPresenter$MenuViewSubHeaderHolder.initialize(SublimeMenuPresenter.java:263)
     at com.appeaser.sublimenavigationviewlibrary.SublimeMenuPresenter$MenuRecyclerAdapter.onBindViewHolder(SublimeMenuPresenter.java:401)
     at com.appeaser.sublimenavigationviewlibrary.SublimeMenuPresenter$MenuRecyclerAdapter.onBindViewHolder(SublimeMenuPresenter.java:347)
     at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6474)
     at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6507)
     at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5450)
     at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5716)
     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5555)
     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5551)
     at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2211)
     at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1538)
     at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1498)
     at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:591)
     at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3691)
     at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3408)
     at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3960)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1214)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
     at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
     at android.view.View.layout(View.java:19393)
     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
     at com.android.internal.policy.DecorView.onLayout(DecorView.java:736)
     at android.view.View.layout(View.java:19393)
06-13 20:38:01.041 29042-29042/tm.my.app W/Resources:     at android.view.ViewGroup.layout(ViewGroup.java:6022)
     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2480)
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2199)
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1385)
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6722)
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:886)
     at android.view.Choreographer.doCallbacks(Choreographer.java:698)
     at android.view.Choreographer.doFrame(Choreographer.java:633)
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:872)
     at android.os.Handler.handleCallback(Handler.java:769)
     at android.os.Handler.dispatchMessage(Handler.java:98)
     at android.os.Looper.loop(Looper.java:164)
     at android.app.ActivityThread.main(ActivityThread.java:6540)
     at java.lang.reflect.Method.invoke(Native Method)
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

Cannot remove replace HeaderView1 with with HeaderView2

Just wanted to have two different HeaderView.xml to switch between but I cannot remove them

Here´s what I try:

        SublimeNavigationView navigate = (SublimeNavigationView) findViewById(R.id.navigation_view);
        if (navigate.getHeaderView() != null)
            navigate.removeHeaderView(navigate.getHeaderView());
        navigate.addHeaderView((View)getLayoutInflater().inflate(R.layout.nav_header, null, false));
        

This code only add one more HeaderView.xml and display them as a header list
Is there some replace method or switsh method to change header?

@vik Unable to remove menu Icons tint color

Used following code:

    SublimeThemer sublimeThemer = new SublimeThemer(this);
    sublimeThemer.setIconTintList(null);
    snv.updateThemer(sublimeThemer); 

also tied this one in xml : app:snvItemIconTint="@null"

Menu margins missing before API 20

Trying to work out why the left and right margins in the menu disappear on versions less than android 5.1 (or perhaps 5.0).

screenshot_2016-11-08_22-25-04

Thats API:16 on the left and API:22 on the right.

How can I add textItem without a group?

I am creating a menu which is a combination of groups and independent items. In the APIs there is no option to add textItem without a group ID.

Could anyone guide me on this?

Thanks you

addTextItem not really adding all

if you do this:

   for(int i = 1; i<= 10;i++) {        
         navdrawer_menu.addTextItem(navdrawer.getMenu().getGroup(R.id.custom_category).getGroupId(), i+"", null, true).setIcon(R.drawable.testimage).setId(i).setVisible(true);

        }

and than do this:

 List<SublimeBaseMenuItem> items=navdrawer.getMenu().getVisibleItems();
        for(int i = 0; i < items.size(); i++) {
            if(items.get(i).getGroupId() == R.id.custom_category) {
                Log.d("Visible", items.get(i).getTitle() + "--->" + items.get(i).getItemType());

                           }
        }

you will see in the Visible that not all the items are added to the mItens and it return in a "aleatory" way

POSSBLE SOLUTION #6 (comment)

Menu disable/Enable based on condition

implement your SublimeNavigationView in my project now i want to assign condition wise visibility to Header Menu and submenu.so how i do that in your project ??

Profile icon is out of place

I came across your NavigationView after looking at awesome answer on stackoverflow for deckview. I have checked few other libraries on GitHub. The one by mikepenz also supports badge view check boxes and other things. I am also looking at how google inbox switches profile icons animating the same. I have looked at another library which does that.

I used keyline pushing app from Faiz Malkani available on playstore and found that some items are out of place. They do no follow the material guidelines. I am posting a snapshot. Let me know your thoughts.

I will also take a look at the code and see if I contribute something. Thank you.

screenshot_20160106-213805

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.