Search code examples
androidandroid-layoutandroid-xmlmenubar

Bottom bar with 'reusing layouts' vs 'viewflipper'


Ok I'm working on an app has permanent bottom bar with buttons, each launch different activity on top of the bar (like Instagram app).

i'm searching around for solutions and looks like I may be able to use either 'viewflipper', 'reusing-layouts' or 'actionbar'. I do not want to use 'actionbar' so that's out of the picture.

so 'reusing layouts' vs 'viewflipper' - which is better in term of performance, memory cost and effective presentation (the bar not refresh/reload every activity change)? Or do you have a better suggestion of solution?

reference:
viewflipper: http://developer.android.com/reference/android/widget/ViewFlipper.html
reusing layout: http://developer.android.com/training/improving-layouts/reusing-layouts.html


Solution

  • ok I'm working on an app has permanent bottom bar with buttons, each launch different activity on top of the bar (like Instagram app).

    I'm not familiar with the Instagram app but how does it launch different activities on top of the bar? I think you are referring to different "content" appearing in the same Activity when clicking the buttons.

    so 'reusing layouts' vs 'viewflipper' - which is better in term of performance, memory cost and effective presentation (the bar not refresh/reload every activity change)?

    Both versions will handle the bar remaining on content change(as you'll have a single Activity), so this isn't an issue.

    Reusing layouts will probably be better on memory as you only have a single layout file in memory at one time. Unfortunately it will be much harder to work with the layouts as you'll need to reinitialize the views from those layouts each time a new one appears (and it will be much harder to do it if the layouts are really different from each other).

    The ViewFlipper will hold its child views in it so if you have a big amount of screens to show it will not go well with the memory. You could probably create a system to remove child views from the ViewFlipper that aren't currently visible but I would not mess with that.

    Or do you have a better suggestion of solution?

    Fragments. Reusable components, much easier to handle, assistance from the framework(as long as you don't go against it) with managing them, easier to handle various screen layouts...