GridView
and ListView
are 2 common and important widgets in Android. Some times, we can see both of them in one screen.
Warning:
Google has released
RecyclerView
, a new widget to create a list/grid layout (a good replacement for GridView
and ListView
) so solution in this article may be obsolete. Please read my newer post to learn about using RecyclerView
instead! How to make this layout style? Both of them are scroll-able! In this tip, I will present a simple way to make them "living together".
The best solution here is put
GridView
as a header (or footer) of our own ListView
and make a "custom GridView
" to expand it's height (not use default declaration).
1. Launch Eclipse and start a new Android Project (I use min-sdk is 14).
2. First, we make a custom
GridView
style which can expand it's height, I think you will find out that the following code is very familiar: :D3. Now, make a layout which contains a custom
GridView
to put it as ListView
header later (layout_grid.xml):4. Create an activity:
- Declare activity layout contains a
ListView
like this:- In the activity programmatically code, we need import
ListView
header from existing xml and set expand value is true for our GridView
.Source code (ListViewActivity.java):
5. Okey, put some features to complete project:
- A mutual Adapter for both of
ListView
and GridView
:- a
GridView
item/ListView
row layout:6. Our example after running:
(Sorry for having ads)