ScrollView игнорирует дочерние элементы layout_height

Получил LinearLayout, содержащий текстовое представление и текст. LinearLayout находится внутри ScrollView.

ScrollView находится внутри другой иерархии представлений (часть макета рабочего пространства, например, вид Android Homescreen), но это заполняет родительский элемент как по высоте, так и по ширине (я устанавливаю цвет заливки, отличный от этого).

С атрибутами fill_parent для layout_height и layout_width на LinearLayout, однако, он заполняет только родительские ширины, а не высоту. Установка высоты на фиксированное также не работает/не действует. Это как будто оно застряло на wrap_content, по сути.

В действительности, проверяя средство просмотра иерархии, оно устанавливается в match_parent. Как ни странно, весовое значение LL равно -1 (в средстве просмотра иерархии); вес не задан явно.

Если есть какая-либо дополнительная информация, которую я могу предоставить, чтобы понять, почему она не соблюдает атрибут layout_height, дайте мне знать:)

Спасибо заранее.

Ответ 1

ScrollView имеет бесконечную высоту (или высоту, определяемую потребностями своего дочернего элемента), поэтому layout_height="fill_parent" не имеет смысла для просмотра внутри него.

Изменить. Ромайн Гай имеет интересную статью об этом, и решение действительно должно использовать fillViewport.

Попробуйте установить его непосредственно в ScrollView в xml: android:fillViewport="true"

Ответ 2

Это звучит как немного неприятный макет для меня (беспорядок: P)

Но я бы сказал, что это игра с атрибутом fillViewPort, который заставит ScrollView получить доступную ему высоту Android fillViewPort Docs

Если вы, однако, хотите что-то похожее на домашний экран, я узнал способ заставить точку зрения принять ту точную высоту (см. приложение Android для Android, Tweetdeck или Admob [beta] для скользящего эффекта, о котором я говорю).

Если это так, дайте мне знать, и я заработаю некоторый исходный код, чтобы сделать это.