gpt4 book ai didi

android - 当 ScrollView 内的布局大于 ScrollView 时,layout_weight 不起作用

转载 作者:行者123 更新时间:2023-11-29 15:22:13 26 4
gpt4 key购买 nike

我正在尝试使用线性布局的 layout_weight 作为 ScrollView 内部的高度。但是我发现 layout_weight 仅适用于 fillViewPort=true 并且如果有足够的剩余空间供 linear_weight 扩展。

我在下面列出了三个示例,我想让 textView 在 #2 和 #3 中的大小与 xml 级别中的 #1 相同。正如您在链接中看到的,在#2、#3 中,textView 已自动更改。

这是我的例子。 TextView 和 Button 包含在 LinearLayout 中,然后包含在 scrollView 中。

1。 Layout_weight 相对于父级工作得很好。 (工作)

http://s22.postimg.org/v0gl2tmyp/Screen_Shot_2013_06_26_at_4_30_51_PM.png

2。 Layout_weight 相对于剩余空间而不是父级工作。(不工作)

http://s22.postimg.org/sx65v5n5t/Screen_Shot_2013_06_26_at_4_30_44_PM.png

3 Layout_weight 被忽略(不工作)

http://s22.postimg.org/ibmaj5gu9/Screen_Shot_2013_06_26_at_4_40_32_PM.png

这是我的 #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>

最佳答案

重量按照设计的方式工作。也许不是你希望他们“工作”的方式,但说他们“不工作”是不准确的。想一想您的第三种情况,您希望 TextView 的像素大小是多少?权重是可用空间的百分比(不是父级的总大小)。 ScrollView 和线性布局至少是屏幕的大小,否则是所有 subview 的总和。因此,如果您的 subview 超过屏幕大小(没有权重的 View ),您希望为剩余 View (具有 0dp 和权重的 View )分配多少空间?关键是空间量是任意的,android 不会尝试假设你想要多少空间,因为它无法知道。

TL;DR - 在 TextView 上设置一个最小高度(以 dp 为单位)以处理按钮过多的情况。

关于android - 当 ScrollView 内的布局大于 ScrollView 时,layout_weight 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com