Android: проблема с ScrollView - PullRequest
29 голосов
/ 09 января 2010

У меня был ряд проблем с 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

Ответы [ 2 ]

95 голосов
/ 09 января 2010

Ваш EditText должен иметь высоту wrap_content. fill_parent не имеет значения в ScrollView. Если вы хотите, чтобы EditText заполнял ScrollView, когда его содержание меньше, чем ScrollView, используйте android:fillViewport="true" на ScrollView.

9 голосов
/ 24 августа 2011

Да, как сказал Ромен, scrollview нуждается в комбо.

  1. для ScrollView android:fillViewport="true"
  2. для ребенка ScrollView android:layout_height="wrap_content"
...