Андроид:Проблема с прокруткой
-
19-09-2019 - |
Вопрос
У меня был ряд проблем с 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
.
Другие советы
Да, как сказал Ромен, для прокрутки требуется следующая комбинация.
- для прокрутки
android:fillViewport="true"
- для дочернего элемента ScrollView
android:layout_height="wrap_content"