猿问

LinearLayout在ScrollView中未扩展

我有一个LinearLayout里面ScrollView有android:layout_height="fill_parent",但它并没有扩展到的最大高度ScrollView。我的布局看起来像:


level    layout    layout_width    layout_height

1    LinearLayout    fill_parent    fill_parent

2    LinearLayout    fill_parent    wrap_content

3    (some irrelevant stuff)

2    ScrollView      fill_parent    fill_parent <-- this expands full height

3    LinearLayout    fill_parent    fill_parent <-- this does not (has orientation=vertical)

(following stuff probably are irrelevant, but just to be sure:)

4    TextView        fill_parent    fill_parent

4    LinearLayout    fill_parent    wrap_content

我可以看到LinearLayout不会展开的全部高度,ScrollView因为在Eclipse中Android Layout Editor,如果选择ScrollView(在“概述”面板中),它将以红色边框突出显示,该红色边框将屏幕填充到底部,但是当我选择LinearLayout其突出显示时不会扩展到屏幕底部。我该怎么做呢?


我试图实现的效果是在其下方有一些文本和一个按钮(在LinearLayout4级内部只有一个按钮)。文本可能足够大,需要滚动条,在这种情况下,我希望用户必须向下滚动才能看到按钮。如果文本不足以容纳滚动条,我希望LinearLayout包含该按钮的内容粘贴到屏幕底部。


起初我以为我不应该发布完整的XML,因为通常它拒绝查看问题中的大量代码。但是,似乎有必要,所以这里是完整的布局。

此刻我求助于android:layout_gravity="bottom"有问题的LinearLayout,无论如何,该按钮都会使按钮粘在屏幕底部。但这也使文本停留在屏幕底部,这与我所追求的不完全相同。


更新:从头开始,android:layout_gravity="bottom"使得ScrollView无法滚动。还有其他想法吗?


天涯尽头无女友
浏览 631回答 3
3回答

侃侃尔雅

最后自己找到了解决方案。问题是不符合LinearLayout,但与ScrollView(似乎不可思议,考虑的事实ScrollView 是扩大,而LinearLayout不是)。该解决方案是使用android:fillViewport="true"的ScrollView。

慕妹3242003

我知道这篇文章很老了,对于那些不想使用android:fillViewport="true"它的人,因为有时它不会在键盘上方显示edittext。使用相对布局而不是LinearLayout可以解决此问题。

蝴蝶刀刀

我已经动态地习惯了这个。我有一个LinearLayout,并在其中使用ScrollView作为子级。然后我再次使用LinearLayout并将想要的View添加到此LinearLayout中,然后将此LinearLayout添加到ScrollView中,最后将此ScrollView添加到LinearLayout中。然后,您可以在urView中滚动,而看不到任何内容。LinearLayout(父类)-ScrollView(LinerLayout的子级)-LinearLayout(ScrollView的子级)-在此处添加您想要的textView,Buttons,Spinner等。然后将此LinearLyout添加到ScrollView。Bcoz只有一个适用于ScrollView的CHILD适用,最后将此ScrollView添加到LinearLyout。如果屏幕大小超出了定义的区域,那么您将在ScrollView中获得一个Scroll。
随时随地看视频慕课网APP

相关分类

Android
我要回答