2011-08-30 4 views
0

Android보기에서 3 개의 행 또는 세그먼트가 포함 된 레이아웃이 있습니다.보기의 세로 공간을 채우기 위해 UI 요소를 늘리는 방법은 무엇입니까?

첫 번째 레이아웃 영역의 높이는 layout_height = "wrap_content"인 영역의 내용을 기준으로합니다.

다음 세그먼트에는 스크롤 기능이 내장 된 ListView가 포함되어 있으므로이 화면에서 사용할 수있는 화면을 차지하게됩니다.

최종 세그먼트는 항상 절대 값 또는 layout_height = "32dp"를 기준으로 고정 된 높이를 갖습니다. 이 트리드 한 부분을보기의 맨 아래에 "도킹"하고 싶습니다. 참고로

는 다음과 같은 XAML 내가

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="32" /> 
    </Grid.RowDefinisions> 
</Grid> 

안드로이드 레이아웃 XML을 통해이 가능 원하는 것을 달성? 그리고 만약 그렇다면 어떻게 할 수 있습니까?

답변

5

설정 로이드 = "fill_parent"layout_height, 로이드 :에 layout_weight = "1"= "match_parent" 또는 로이드 layout_height.

후자는 상위 레이아웃에서 나머지 모든 사용되지 않은 공간을 사용하며, 전자는 때때로 다른 요소를 보이지 않게 만듭니다.

+1

안드로이드 : android : layout_weight = "1"android : height = "0dp"와 함께 "match_parent"는 본 적이 없지만 트릭을 마쳤습니다. – Kevin

+1

API 레벨 8 이상을 사용하는 경우'fill_parent' 대신'match_parent'를 사용하십시오. http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html을 참조하십시오. 대체품이야. – kabuko

0

layout_width = "fill_parent"를 사용해 보셨나요?

2

이것은 가능합니다. 이 방법은 여러 가지 방법이 있습니다. 가장 쉬운 방법은 LinearLayout을 사용하는 것입니다. 같은 뭔가 :

<LinearLayout layout_height="fill_parent"> 
    <firstitem layout_height="wrap_content" layout_width="fill_parent" /> 
    <ListView layout_height="fill_parent" layout_width="fill_parent" /> 
    <bottomitem layout_height="32dp" layout_width="fill_parent" /> 
</LinearLayout> 

사용 dp하지 sp. sp은 일반적으로 글꼴 크기를 나타내며 다른 모든 글꼴은 dp입니다.

그런데 일반적인 레이아웃 개체로 시작하는 것이 좋을 때 guide을 작성하는 것이 좋습니다.

+0

예 - "dp"가 "sp"가 아니란 뜻입니다. 좋은 설명 – Kevin

+0

참고로 -이 대답의 XML은 원래의 방식 이었지만 제대로 작동하지 않았습니다. ListView 항목의 두 번째 "fill_parent"는 화면의 나머지 부분을 차지하고 화면 아래쪽 항목을 밀었습니다. – Kevin

+0

아, 가끔 전에 일어난 일을 봤습니다. 당신이 언급 한대로'layout_weight'를 사용하고 싶을 것이다. 보통'0dp '보다'layout_height = "wrap_content"'를 선호하지만 둘 중 하나만 사용해야합니다. – kabuko

관련 문제