2013-10-18 2 views
0

뉴스 요약을 타일로 표시하는 뉴스 응용 프로그램을 만들려고합니다 (예 : Flipboard - http://uncrate.com/p/2010/07/flipboard.jpg 참조).균일하게 펼쳐진 Android GridLayout을 사용하여 뉴스 응용 프로그램 만들기

현재로서는 어떻게 구조화 될 수 있는지에 대한 매우 간단한 작업 예제 만 얻으려고합니다.

주변에서 읽었을 때, 깊이 중첩 된 LinearLayouts 사용을 피하기 위해 Android에서이 작업을 수행하는 가장 좋은 방법은 GridLayout을 사용하는 것입니다. 그러나, 나는 지금 2 시간 동안 이것을하려고 노력하고 있었다. 그러나 어떤 운도 가지지 않고 있었다. 이미 layout_width0dp으로 설정하고 LinearLayout 하위 요소를 layout_gravity에서 fill_horizontal으로 설정하려고 시도했지만 작동하지 않습니다. 나는이 코드 (예 :이 게시물에서 제안한대로 - 예 : 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> 
+0

는 –

+0

@LandLPartners 감사 대답에있는 LinearLayout 안에 모든 것을 할 = "1"대신 layout_gravity의 모든 선형 레이아웃에, 또한 jsut 수 usinf layout_weight를 시도하지만, 난 그냥 그것을 시도하고 그것은 작동하지 않았다 . 다른 단서들? – rod82

+0

에서 GridLayout을 제거하는 동안 layout_weight가 GridLayouts에서 작동하지 않으므로 시도해 보았습니다. 시도 할 수있는 몇 가지 옵션은 테이블 레이아웃을 사용하거나 LieanerLayouts를 사용하여이 모든 것을 구현하는 것입니다 (복잡 해지는 방법에 따라 지저분해질 수 있음). –

답변

0

일부 옵션 장난 후에, 나는 기본적인 작업 예로서 나를 위해 충분 다음과 같은 솔루션을 마련하는 데 성공했다. 나는 GridLayoutLinearLayout의 혼합물에 대해 layout_weightweightSum을 가지고 관련 뉴스를 보려는 기본적인 뉴스 찾고 페이지를 얻으려고했다.

XML에 너무 많이 중첩되어 있다고 생각 하나 언제든지 페이지에 많은 요소가 없으므로 나는 그 것처럼 행복합니다. 그러나 누군가가 더 나은 해결책을 가지고 있다면 알려 주시기 바랍니다.

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" android:columnCount="2" android:rowCount="3" android:useDefaultMargins="true"> 

    <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="0" android:layout_columnSpan="2" android:layout_row="0" android:layout_rowSpan="1"> 
     <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="wrap_content" 
      android:layout_height="wrap_content" 
      android:weightSum="2" android:layout_column="0" android:layout_columnSpan="2" android:layout_row="1" 
      android:layout_rowSpan="2"> 
     <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"> 
      <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="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"> 
      <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> 
    </LinearLayout> 

</GridLayout> 
관련 문제