문제

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이 말했듯이 스크롤 뷰에는 다음 콤보가 필요합니다.

  1. ScrollView의 경우 android:fillViewport="true"
  2. ScrollView의 자식 android:layout_height="wrap_content"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top