我有一个在android:layout_height="fill_parent"
的ScrollView
里面有一个LinearLayout
,但是它不会展开到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
的全部高度,因为在Android Layout Editor
Eclipse中,如果selectScrollView
(在“大纲”面板中),它将以红色边框突出显示,并将屏幕填充到底部,但当我selectLinearLayout
其高亮不会展开到屏幕的底部。 我怎样才能做到这一点?
我试图实现的效果是有一些文本和下面的button(在4级的LinearLayout
只有一个button)。 文本可以足够大,需要一个滚动条,在这种情况下,我希望用户不得不向下滚动才能看到button。 如果文本不够大的滚动条,我希望包含button的LinearLayout
粘贴到屏幕的底部。
起初我以为我不应该发布完整的XML,因为通常是在一个问题中看到大量的代码。 但是,它似乎可能是必要的,所以这是完整的布局。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" xmlns:android="https://schemas.android.com/apk/res/android"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/video_layout" android:focusable="true" style="@style/VideoLayout"> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:foreground="@android:drawable/ic_media_play" android:foregroundGravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/video_thumb" android:padding="5dip" android:background="#454545"/> </FrameLayout> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="true" style="@style/VideoTitle" android:id="@+id/video_title" android:layout_gravity="center" android:layout_weight="1"/> </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <!-- this ScrollView expands the full height of the screen. However, the next LinearLayout does not expand the full height of the ScrollView --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:layout_gravity="fill" android:orientation="vertical" android:id="@+id/info_layout"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/info_body" style="@style/InfoText"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" style="@android:style/ButtonBar"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:text="@string/button_readmore" android:id="@+id/btn_read_more"/> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout>
目前,我对有问题的LinearLayout
使用了android:layout_gravity="bottom"
,这使得button无论如何都会粘在屏幕的底部。 但是,这也使文本坚持到屏幕的底部,这是不是我所追求的。
更新:从头开始, android:layout_gravity="bottom"
使ScrollView
无法滚动。 其他想法?
最后自己find解决scheme。 问题不在于LinearLayout
,而在于ScrollView
(看起来很奇怪,考虑到ScrollView
正在扩展,而LinearLayout
则没有)。
解决scheme是在ScrollView
上使用android:fillViewport="true"
。
我知道这个post是非常古老的,对于那些不想使用android:fillViewport="true"
因为它有时不会显示键盘上方的edittext。 使用相对布局而不是LinearLayout来解决这个问题。
你能提供你的布局xml吗? 这样做可以让人们以最小的努力重现问题。
您可能需要设置
android:layout_weight="1"
为您想扩展的项目
我已经dynamic地使用这个。 我有一个LinearLayout和在这个使用ScrollView作为一个孩子。 然后,我再次采用LinearLayout并添加什么视图你想要这个LinearLayout,然后这个LinearLayout添加到ScrollView,并最终将此ScrollView添加到LinearLayout。 然后你可以滚动你的ScrollView,没有任何东西可以看到。
LinearLayout(Parent) – ScrollView(LinerLayout的子类) – LinearLayout(ScrollView的子类) – 在这里添加textView,Buttons,Spinner等任何你想要的。 然后将此LinearLyout添加到ScrollView。 Bcoz只有一个适用于ScrollView的CHILD,最后将这个ScrollView添加到LinearLyout。如果定义的区域超出屏幕大小,那么您将在ScrollView中获得一个滚动。
在我的情况下,我没有给予
LinearLayout的方向(ScrollView的孩子)
所以默认情况下,它需要水平的,但scrollview scrols垂直,所以请检查'android:orientation =“vertical”'设置为您的ScrollView的子(在LinearLayout的情况下)。
这是我的情况,希望它有助于某人
。
以上就是android开发分享LinearLayout不在ScrollView内部扩展相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/517005.html