2013-02-25 3 views
3

신생 Android 개발자입니다. 내 UI 디자인을 수행하기 위해 GridLayout을 사용하려고합니다. 런타임에 GridLayout 행/열 개수를 android에서 변경합니다.

는 시나리오 : 다음

<GridLayout 
    android:id="@+id/gridLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@id/linearLayoutBottomLeft" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/linearLayoutTopLeft" 
    android:layout_toLeftOf="@id/textView" > 
</GridLayout> 

을 다음과 같은

내가 XML 파일에서 GridLayout과 정의, 내가 좋아하는 내 활동의에서 onCreate() 메소드에서 설정 다음

GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout); 
gridLayout.invalidate(); 
int rowNumber = 4; 
int colNumber = 4; 
gridLayout.setRowCount(rowNumber); 
gridLayout.setColumnCount(colNumber); 

지금까지 그렇게 좋았습니다. 모든 것이 잘 작동했습니다. 그러나 일부 버튼도 있습니다. 버튼의 클릭 이벤트에서 rowNumber 및 colNumber를 변경하고 런타임에이를 설정했습니다. 그것은 내가 생각하는 몇 가지 오류가 발생할 수 있습니다 ...

내 질문은 행 번호와 열 번호는 gridLayout에 대한 런타임에 설정할 수 있는지 여부입니다.

안드로이드에서 허용되지 않는 경우 위에 설명한 것과 같은 GUI를 구현하는 것이 좋습니다.

어떤 도움

주시면 감사하겠습니다.

답변

0

오늘 저는이 문제를 해결할 방법을 찾아 냈습니다.

xml 파일에서 GridLayout을 LinearLayout으로 바꾸고 girdlayout을 linearlayout의 자식으로 동적으로 추가했습니다. 이제 버튼 클릭 이벤트 핸들러에서 행/열 개수를 변경할 수 있습니다.

이것이 좋은 방법이고 성능이 저하 될지 잘 모르겠습니다.

1

gridLayout.removeAllChildren()을 수행해야합니다.

무효화는 View의 내용이 변경되었고 다시 그려야 함을 View 시스템에 알리는 방법입니다.

관련 문제