기계적 인조 인간:ScrollView 문제
-
19-09-2019 - |
문제
ScrollViews에 여러 가지 문제가 있었습니다.최근에 콘텐츠가 화면 크기를 초과하는 LinearView를 만들려고 했기 때문에 상위 요소인 ScrollView를 사용하여 새 레이아웃을 만들고 너비와 높이를 사용자 정의 값으로 설정했습니다(레이아웃은 전체 화면을 채우지 않고 대화 상자로 나타나야 합니다).
요소를 선택하면 사전 정의된 ScrollView LayoutWidth 및 LayoutHeight의 사각형을 포함하는 빨간색 테두리가 나타납니다. 이는 괜찮습니다.그런 다음 LinearView 내부에 배치하고 LayoutWidth 및 LayoutHeight 값을 fill_parent로 설정했습니다.
그런 다음 LinearLayout에 요소를 추가하기 시작했을 때 테두리(빨간색 라일)가 전체 부모 ScrollView가 아닌 삽입된 요소를 래핑했습니다.
따라서 LinearLayout(ScrollView의 하위) 내용이 상위 ScrollView의 크기를 초과하면 스크롤이 표시되지 않고 아래쪽 요소가 표시되지 않습니다.
그래도..이 경우 XML 콘텐츠가 너무 광범위하여 여기에 질문을 게시할 수 없으며 이제 더 간단한 예에서도 동일한 문제가 발생합니다.
레이아웃의 다음 부분은 스크롤 가능한 EditText로 사용됩니다(사용자 입력이 위젯의 기본 크기를 초과하는 경우).EditText 높이를 120px로 설정하고 싶었기 때문에 부모 ScrollView 높이를 120px로 설정하고 자식 EditText를 fill_parent로 설정했습니다.이 경우에도 EditText는 전체 ScrollView 영역을 채우지 않고 한 줄만 채웁니다.
<ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>
EditText가 상위 컨트롤을 채우고 사용자 입력이 컨트롤 크기를 초과하는 경우 스크롤이 나타나도록 위 내용의 모양을 변경하는 방법을 아는 사람이 있습니까?
감사합니다!
편집하다:
아래는 레이아웃 스크린샷입니다.
죽은 ImageShack 링크를 제거했습니다.
죽은 ImageShack 링크를 제거했습니다.
해결책
EditText의 높이는 다음과 같아야 합니다. wrap_content
. fill_parent
에는 의미가 없습니다 ScrollView
.당신이 원하는 경우 EditText
당신의 채우기 위해 ScrollView
내용이 것보다 작을 때 ScrollView
, 사용 android:fillViewport="true"
에 ScrollView
.
다른 팁
예, Romain이 말했듯이 스크롤 뷰에는 다음 콤보가 필요합니다.
- ScrollView의 경우
android:fillViewport="true"
- ScrollView의 자식
android:layout_height="wrap_content"