我正嘗試創建一個新聞應用程序,以瓷磚顯示新聞摘要(例如Flipboard - 請參閱http://uncrate.com/p/2010/07/flipboard.jpg)。均勻拉伸Android GridLayout來創建新聞應用程序
目前,我只是試圖得到一個非常簡單的工作示例,說明這可能是如何構造的。
從閱讀中可以看出,使用GridLayout是在Android中執行此操作的最佳方法,以避免使用深度嵌套的LinearLayouts。不過,我一直試圖做幾個小時,但沒有運氣。我已經嘗試將layout_width
設置爲0dp
和layout_gravity
至fill_horizontal
,用於我的LinearLayout
子元素,但這不起作用。我正在考慮嘗試在代碼中執行此操作(例如按照本文中的建議 - https://stackoverflow.com/a/10348166/831821),但確實想知道它是否只能通過XML實現。
任何幫助,這是非常讚賞。
下面是我當前的main.xml佈局文件。
<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>
嘗試usinf layout_weight =「1」爲您的所有線性佈局,而不是layout_gravity,你也可以僅僅指剛做這一切中的LinearLayout的答案 –
@LandLPartners感謝,不過我已經嘗試過了,也沒有工作。任何其他線索? – rod82
就像在你嘗試去掉GridLayout一樣,因爲layout_weight在GridLayouts上不起作用。你可以嘗試的情侶選項是使用表格佈局,或者使用LieanerLayouts實現它(取決於這可能會如何複雜)。 –