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] для скользящего эффекта, о котором я говорю).
Если это так, дайте мне знать, и я заработаю некоторый исходный код, чтобы сделать это.