Вопрос

У меня был ряд проблем с ScrollViews.Недавно я попытался создать LinearView, содержимое которого превышает размер экрана, поэтому я создал новый макет с родительским элементом ScrollView и установил для его ширины и высоты пользовательские значения (макет должен отображаться в виде диалогового окна, а не заполнять весь экран).

Когда элемент выбран, красная граница охватывает прямоугольник с предопределенными значениями ScrollView LayoutWidth и LayoutHeight, что нормально.Затем я поместил внутрь LinearView и установил для значений LayoutWidth и LayoutHeight значение fill_parent.

Затем, когда я начал добавлять элементы в LinearLayout, граница (красная линия) охватывала вставленные элементы, а не весь родительский ScrollView.

Поэтому, когда содержимое LinearLayout (дочернего элемента ScrollView) превышает размер родительского ScrollView, прокрутка не отображается, а нижние элементы просто невидимы.

В любом случае..в этом случае содержимое XML было слишком обширным, чтобы опубликовать вопрос здесь, и теперь у меня та же проблема с более простым примером.

Следующая часть макета представляет собой прокручиваемый EditText (в случае, если пользовательский ввод превышает основной размер виджета).Я хотел установить высоту EditText на 120 пикселей, поэтому я установил высоту родительского ScrollView на 120 пикселей, а дочернего 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.

Другие советы

Да, как сказал Ромен, для прокрутки требуется следующая комбинация.

  1. для прокрутки android:fillViewport="true"
  2. для дочернего элемента ScrollView android:layout_height="wrap_content"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top