0

제목이 다소 혼란 스럽습니다.하지만 원하는 것은 기본적으로 색칠 된 배경과 테두리가있는 알림 상자입니다. 화면 중앙에 있지만 늘이지는 않습니다.높이가 fill_parent 인 Android에서 사용자 정의 Textview가 배경 채우기 만 wrap_content

이미 배경과 테두리를 만드는 사용자 지정보기가 있지만 "width : fill_parent"및 "height : wrap_content"를 만들면 화면 위쪽에 나타나며 높이를 fill_parent , 전체 화면이 배경으로 채워질 것입니다 (나는 다소 그것이 일어날 것임을 알았습니다).

layout_gravity를 center로 설정하는 간단한 방법을 시도했지만 도움이되지 않았습니다. 뷰는 수직 선형 레이아웃 안에 있고 그 안에 유일한 가시적 인 뷰입니다 (다른 모든 요소에는 visibility = View.GONE이 있습니다).

height : fill_parent를 넣을 수 있고 wrap_content 규칙을 따르는 배경을 가질 수 있도록 사용자 정의보기의 onDraw()를 어떻게 코딩해야합니까? 더 간단하고 나은 솔루션은 언제나 환영받습니다.

답변

1

문제는 LinearLayout에 중첩되어 있다고 생각합니다.

것은 그런 다음 사용자 정의보기를 중심으로 할 수 있어야한다

"하나의 항목을 표시하는 화면의 영역을 차단하도록 설계되어있다"는 FrameLayout에 시도 투명 배경 위에 FrameLayout

편집 : LinearLayout이 문제라고 생각하는 이유를 명확히하기 위해. LinearLayout이 스택처럼 채워 지므로 중력에 중심을 맞추려고 할 때 항목이 맨 위에 표시됩니다. 판 스택을 상상해 보면 중간에서 시작할 수는 없습니다 :-)

+0

그 방법 중 하나 일뿐입니다.하지만 그렇게하기 위해 다른 외부보기를 추가하고 싶지 않았습니다. 어쨌든, 내일까지 아무것도 찾지 못하면 이걸 사용하겠습니다. 고마워요. –

+0

LinearLayout을 제거하거나 레이아웃의 나머지 부분에서 필수적인 경우. FrameLayout을 나란히 놓고 Visibility를 View.GONE으로 설정합니다. –

관련 문제