Stefano Pochet
Stefano Pochet

Reputation: 326

Linear layout with nested listview scrolling

I have a LinearLayout with a nested listview which looks like this:

<LinearLayout ... >
    <LinearLayout>
    </LinearLayout>
    <ListView>
    </ListView>
</LinearLayout>

The problem is that the listview owns the scrollbar (so only content in the listview is scrollable) but i actually want the parent LinearLayout to own the scrollbar (so making the entire content scrollable).

Wrapping parent ListView in a ScrollView hasn't been successful because the ScrollView doesn't recognize ListView height (which looks like is rendered at running time)

Thanks

Edit: SOLVED My perfect solution was using a MergeAdapter, as advised by Barak

Upvotes: 3

Views: 3034

Answers (3)

Idistic
Idistic

Reputation: 6311

Since the listview is designed to contain more items than can be displayed the height will never exceed the screen size (best case) which is the intent of the control, though I suppose you could force it to be larger that seems generally like a bad idea for a lot of reasons.

I suspect what you should do is either create a custom listview adapter, and based on position in the list create the view you want, this would allow all items to scroll like you want.

Listview with different view types per row

This may or may not work depending on what exactly you are trying to do, otherwise you might just want to add views to a linear view inside a scroll view san's the listview.

It just depends on the use case (how many items in the list view, memory issues etc) and what the purpose of the other views are.

Upvotes: 0

Barak
Barak

Reputation: 16393

You can use CommonWares MergeAdapter which allows you to define views and list adapters, pour them into the MergeAdapter and get a single list adapter out, containing everything you poured in, and it scrolls as one list.

A previous answer about MergeAdapter I gave with some instructions is here

Upvotes: 2

javram
javram

Reputation: 2645

You could replace the Listview with a Tableview instead, as long as the listview does not have too many items in it. You can still use a childview with the tableview in much the same way as the listview, you just won't be able to databind it in the same way as you can with a listview, and the items won't recycle either.

Upvotes: 0

Related Questions