【发布时间】:2013-06-26 20:51:17
【问题描述】:
我正在尝试使用线性布局的 layout_weight 作为滚动视图内部的高度。但是我发现 layout_weight 仅适用于 fillViewPort=true 并且如果有足够的剩余空间供 linear_weight 扩展。
我在下面列出了三个示例,我想让 textView 在 #2 和 #3 中的大小与 xml 级别中的 #1 相同。 正如您在链接中看到的,在 #2、#3 中,textView 已自动更改。
这是我的例子。 TextViews 和 Buttons 包含在 LinearLayout 中,然后包含在 scrollView 中。
1。 Layout_weight 相对于父级工作得很好。 (工作)
2。 Layout_weight 相对于剩余空间而不是父空间起作用。(不工作)
3 Layout_weight 被忽略(不工作)
这是我#3 的 xml 代码。 #2 和 #1 基本上是相同的代码,按钮较少或没有按钮。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weighSum="1"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="10" >
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<Button
android:layout_width="30dip"
android:layout_height="30dip"
android:text="Accept" />
<TextView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="6"
android:background="#AAABBB"
android:text="hello" />
<TextView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:background="#BBBAAA"
android:text="hello" />
<TextView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:background="#AAABBB"
android:text="hello" />
</LinearLayout>
</ScrollView>
【问题讨论】:
-
这三个场景可以加xml吗?这将有助于更清楚地说明您要完成的工作。
-
究竟是什么不适合您?还是您希望其他人完成整个布局?
-
嗨,我只想让 layout_weight 工作。但我认为 layout_weight 不起作用,因为它操纵其孩子的高度的滚动视图的性质。所以我只是想看看我是否错了,对于场景 #2 和 #3 有一个解决方法。谢谢。
-
我认为您正在寻找的解决方法是在“加权”视图上设置 minHeight 属性。请参阅下面的答案。
标签: android android-layout android-linearlayout android-xml android-scrollview