2016-06-11 2 views
0

Android 개발을 배우고 있으며 간단한 계산기를 만들려고합니다. 나는 계산기의 레이아웃에 문제가있다. 제 견해로, 전체 xml 코드를 게시하는 것은 너무 까다 롭습니다. 그래서 제 의견으로는 중요한 부분을 게시 할 것입니다.Android Studio에서 위젯의 높이를 설정하는 방법은 무엇입니까?

필자는 가장 위쪽의 부모로 세로 LinearLayout을 만들었습니다. 그 다음에는 2 개의 자식, 수평 LinearLayout (입력을 나타내는 textView와 계산을 지시하는 버튼으로 구성) 및 GridLayout이 있습니다. 0-9 개의 버튼과 연산자가 될 수 있습니다.

문제는 그리드 레이아웃이 버튼이있는 4x4 격자 일 것이고 버튼의 첫 번째 행을 설정할 때 각 버튼은 layout_height를 가져와야하며 이는 비워 둘 수 없으며 값을 설정하면 match_parent로 설정하면 해당 버튼 만 누르면 전체 화면이 채워집니다.

어떻게하면이 문제를 layout_height로 해결할 수 있습니까? 몇 가지 해결 방법이 있습니까? 아니면 그리드에 대해 여러 개의 LinearLayouts를 만드는 것이 더 좋을까요? 추가 질문이 있으시면 언제든지 설명해주십시오.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:layout_weight="1" 
    android:background="@color/colorLight" 
    android:orientation="horizontal"> 

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="8" 
    android:background="@color/colorLight" 
    android:> 
+0

당신이 grid_column을 설정할 수 있습니다 참조하십시오? 그것은 당신의 문제를 해결하지 않습니까? – Amir

+1

'GridLayout' 대신'GridView'를 사용할 수 있습니까? – SQLiteNoob

+0

보기의 높이로 ** 0dp **를 사용하십시오. 보기 가시성을 ** GONE **으로 설정하십시오. 나는 두 번째 옵션을 선호한다. –

답변

1

죄송합니다. 귀하의 질문에 대한 오해가 있습니다. API 21 이상을 사용하는 경우 columnCount을 사용하여 가져올 수 있습니다.

that answer 또는 that answer

+0

응답을위한 Thx. 문제는 children 레이아웃에 있지 않습니다. layout_weight를 설정하고 꼭 맞게 맞 춥니 다. 문제는 그리드 레이아웃에 버튼을 추가 할 때 그 버튼에 layout_height 값이 있어야하고, match_parent로 설정하면 전체 화면을 채울 것이고 0dp로 설정하면 사라질 것입니다. – Leonz

0

가장 좋은 방법은 다양한 화면 크기에이를 정렬하는 weight 속성을 사용하는 것입니다 : 여기

아이들의 LinearLayout 및 GridLayout과 XML 코드입니다. GridLayout의 경우 documentation에 따르면 아무 것도 없습니다.

중첩 된 LinearLayouts과 같은 아이디어는이 대답을 확인하십시오. GridLayout (not GridView) how to stretch all children evenly

관련 문제