그리드 레이아웃 및 행 / 열 스팬
도입 안드로이드 개발자 블로그 게시물GridLayout 방송을 자동 스팬 인덱스 할당 방법의 영향이도 :

실제로를 사용하여 구현하려고합니다 GridLayout. 여기 내가 지금까지 가지고있는 것입니다 :
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.commonsware.android.gridlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:orientation="horizontal"
app:columnCount="8">
<Button
app:layout_columnSpan="2"
app:layout_rowSpan="2"
android:layout_gravity="fill_horizontal"
android:text="@string/string_1"/>
<Button
app:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:text="@string/string_2"/>
<Button
app:layout_rowSpan="4"
android:text="@string/string_3"/>
<Button
app:layout_columnSpan="3"
app:layout_rowSpan="2"
android:layout_gravity="fill_horizontal"
android:text="@string/string_4"/>
<Button
app:layout_columnSpan="3"
android:layout_gravity="fill_horizontal"
android:text="@string/string_5"/>
<Button
app:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:text="@string/string_6"/>
<android.support.v7.widget.Space
app:layout_column="0"
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
<android.support.v7.widget.Space
android:layout_width="36dp"
/>
</android.support.v7.widget.GridLayout>
<Space>각 열의 너비가 최소인지 확인하기 위해 요소 를 소개 해야했습니다. 그렇지 않으면 너비가 0 인 열이 있습니다.
그러나 그들과 함께하더라도 나는 이것을 얻습니다.

특히 :
그럼에도 불구하고
android:layout_gravity="fill_horizontal"열 범위가있는 위젯은 범위가 지정된 열을 채우지 않습니다.android:layout_rowSpan값 에도 불구하고 행에 걸쳐있는 것은 없습니다.
누구나 블로그 게시물에서 다이어그램을 재현 할 수 있습니까 GridLayout?
감사!
그것은 꽤 해키 느낌이지만, 필요한 것 이상으로 여분의 열과 행을 추가하여 올바른 모양을 얻을 수있었습니다. 그런 다음 높이를 정의하는 각 행에 스페이스로 여분의 열을 채우고 너비를 정의하는 각 열에 스페이스로 추가 행을 채웠습니다. 유연성을 높이기 위해 가중치와 비슷한 것을 제공하기 위해 이러한 공간 크기를 코드로 설정할 수 있다고 생각합니다. 스크린 샷을 추가하려고했지만 평판이 필요하지 않습니다.
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnCount="9"
android:orientation="horizontal"
android:rowCount="8" >
<Button
android:layout_columnSpan="2"
android:layout_gravity="fill"
android:layout_rowSpan="2"
android:text="1" />
<Button
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:text="2" />
<Button
android:layout_gravity="fill_vertical"
android:layout_rowSpan="4"
android:text="3" />
<Button
android:layout_columnSpan="3"
android:layout_gravity="fill"
android:layout_rowSpan="2"
android:text="4" />
<Button
android:layout_columnSpan="3"
android:layout_gravity="fill_horizontal"
android:text="5" />
<Button
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:text="6" />
<Space
android:layout_width="36dp"
android:layout_column="0"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="1"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="2"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="3"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="4"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="5"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="6"
android:layout_row="7" />
<Space
android:layout_width="36dp"
android:layout_column="7"
android:layout_row="7" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="0" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="1" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="2" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="3" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="4" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="5" />
<Space
android:layout_height="36dp"
android:layout_column="8"
android:layout_row="6" />
</GridLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:columnCount="8"
android:rowCount="7" >
<TextView
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_columnSpan="2"
android:layout_rowSpan="2"
android:background="#a30000"
android:gravity="center"
android:text="1"
android:textColor="@android:color/white"
android:textSize="20dip" />
<TextView
android:layout_width="50dip"
android:layout_height="25dip"
android:layout_columnSpan="2"
android:layout_rowSpan="1"
android:background="#0c00a3"
android:gravity="center"
android:text="2"
android:textColor="@android:color/white"
android:textSize="20dip" />
<TextView
android:layout_width="25dip"
android:layout_height="100dip"
android:layout_columnSpan="1"
android:layout_rowSpan="4"
android:background="#00a313"
android:gravity="center"
android:text="3"
android:textColor="@android:color/white"
android:textSize="20dip" />
<TextView
android:layout_width="75dip"
android:layout_height="50dip"
android:layout_columnSpan="3"
android:layout_rowSpan="2"
android:background="#a29100"
android:gravity="center"
android:text="4"
android:textColor="@android:color/white"
android:textSize="20dip" />
<TextView
android:layout_width="75dip"
android:layout_height="25dip"
android:layout_columnSpan="3"
android:layout_rowSpan="1"
android:background="#a500ab"
android:gravity="center"
android:text="5"
android:textColor="@android:color/white"
android:textSize="20dip" />
<TextView
android:layout_width="50dip"
android:layout_height="25dip"
android:layout_columnSpan="2"
android:layout_rowSpan="1"
android:background="#00a9ab"
android:gravity="center"
android:text="6"
android:textColor="@android:color/white"
android:textSize="20dip" />
</GridLayout>
</RelativeLayout>

열에 layout_gravity와 layout_columntWeight를 모두 설정해야합니다.
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:text="سوم شخص"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
/>
<TextView android:text="دوم شخص"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
/>
<TextView android:text="اول شخص"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
/>
</android.support.v7.widget.GridLayout>
Android Support V7 GridLayout 라이브러리는 무게의 원리를 수용하여 과도한 공간 분배를 쉽게합니다. 열을 늘리려면 열 내부의 구성 요소가 무게 또는 중력을 정의하는지 확인하십시오. 컬럼이 늘어나지 않도록 컬럼의 구성 요소 중 하나가 무게 나 중력을 정의하지 않도록하십시오. 이 라이브러리에 대한 종속성을 추가해야합니다. build.gradle에 com.android.support:gridlayout-v7:25.0.1 을 추가하십시오 .
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="2"
app:rowCount="2">
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="First"
app:layout_columnWeight="1"
app:layout_rowWeight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="Second"
app:layout_columnWeight="1"
app:layout_rowWeight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="Third"
app:layout_columnWeight="1"
app:layout_rowWeight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:text="fourth"/>
</android.support.v7.widget.GridLayout>
API 21부터 GridLayout은 이제 LinearLayout과 같은 가중치를 지원합니다. 자세한 내용은 아래 링크를 참조하십시오.
https://stackoverflow.com/a/31089200/1296944
참고 URL : https://stackoverflow.com/questions/11863329/gridlayout-and-row-column-span-woe
'IT story' 카테고리의 다른 글
| UIImage 이미지 해제하기 (0) | 2020.07.19 |
|---|---|
| CSS가 음수 패딩을 지원하지 않는 이유는 무엇입니까? (0) | 2020.07.19 |
| MongoDB / NoSQL : 문서 변경 기록 유지 (0) | 2020.07.19 |
| Java에서 메소드 매개 변수를 final로 선언 해야하는 성능상의 이유가 있습니까? (0) | 2020.07.19 |
| Java 또는 C #의 예외 관리 모범 사례 (0) | 2020.07.19 |