I am trying to create a news application that displays news summaries in tiles (e.g. like Flipboard - see http://uncrate.com/p/2010/07/flipboard.jpg).
At the moment, I am only trying to get a very simple working example of how this might be structured.
From reading around, it seems that using a GridLayout is the best way to do this in Android in order to avoid using deeply nested LinearLayouts. However, I have been trying to do this for a couple of hours now but had no luck. I have already tried setting the layout_width
to 0dp
and the layout_gravity
to fill_horizontal
for my LinearLayout
sub elements, but this does not work. I am thinking of trying to do this in code next (e.g. as per suggested in this post - https://stackoverflow.com/a/10348166/831821) but really wanted to know if it is achievable through XML only.
Any help with this is much appreciated.
Below is my current main.xml layout file.
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true"
android:columnOrderPreserved="false" android:rowOrderPreserved="false"
android:layout_alignWithParentIfMissing="false" android:layout_centerInParent="true" android:columnCount="2"
android:rowCount="3">
<LinearLayout
android:layout_width="0dp"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content" android:layout_row="0" android:layout_columnSpan="2"
android:layout_rowSpan="1" android:layout_column="0">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
android:id="@+id/textView"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content" android:layout_column="0" android:layout_columnSpan="1"
android:layout_row="1" android:layout_rowSpan="2"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
android:id="@+id/textView1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content" android:layout_column="1" android:layout_columnSpan="1"
android:layout_row="1" android:layout_rowSpan="2"
android:baselineAligned="false" android:clickable="false"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
android:id="@+id/textView2"/>
</LinearLayout>
</GridLayout>