【问题标题】:android layout dynamic width of listviewslistviews的android布局动态宽度
【发布时间】:2013-08-16 16:45:37
【问题描述】:

在我的布局中,我有 5 个彼此相邻的列表视图,并且希望它们一起匹配屏幕大小,以便每个人的宽度都是屏幕宽度的 1/5。匹配父级不起作用,因为这样每个列表视图都与屏幕一样大。

其实我用这个:

<ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scrollView"
            android:layout_marginTop="25dp">

        <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >

            <ListView
                    android:layout_width="95dp"
                    android:layout_height="700dp"
                    android:id="@+id/listView2"
                    android:layout_gravity="center_horizontal|top"/>

            <ListView
                    android:layout_width="95dp"
                    android:layout_height="700dp"
                    android:id="@+id/listView3"
                    android:layout_gravity="center_horizontal|top"/>

            <ListView
                    android:layout_width="95dp"
                    android:layout_height="700dp"
                    android:id="@+id/listView4"
                    android:layout_gravity="center_horizontal|top"/>

            <ListView
                    android:layout_width="95dp"
                    android:layout_height="700dp"
                    android:id="@+id/listView5"
                    android:layout_gravity="center_horizontal|top"/>

            <ListView
                    android:layout_width="95dp"
                    android:layout_height="700dp"
                    android:id="@+id/listView6"
                    android:layout_gravity="center_horizontal|top"/>

        </LinearLayout>
    </ScrollView>

但这当然不适用于不同的屏幕尺寸。

【问题讨论】:

  • ListView 放入ScrollView 是一种罪过!!!说真的……

标签: android xml listview layout width


【解决方案1】:

android:weightSum="5" 添加到您的LinearLayout 并将android:layout_weight="1" 添加到您的每个ListView。您可能需要将宽度设置为 0。

我也不建议将ListView 放在ScrollView 中。

【讨论】:

    【解决方案2】:

    不要永远ListView 放在ScrollView 中,无论如何,这是你的做法:

    <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
    
            <ListView
                    android:layout_width="0dp"
                    android:layout_height="fill_parent" android:layout_weight="20"
                    android:id="@+id/listView2" />
    
            <ListView
                    android:layout_width="0dp"
                    android:layout_height="fill_parent" android:layout_weight="20"
                    android:id="@+id/listView3" />
    
            <ListView
                    android:layout_width="0dp"
                    android:layout_height="fill_parent" android:layout_weight="20"
                    android:id="@+id/listView4" />
    
            <ListView
                    android:layout_width="0dp"
                    android:layout_height="fill_parent" android:layout_weight="20"
                    android:id="@+id/listView5" />
    
            <ListView
                    android:layout_width="0dp"
                    android:layout_height="fill_parent" android:layout_weight="20"
                    android:id="@+id/listView6" />
    
        </LinearLayout>
    

    【讨论】:

    • 为什么不呢?它完美地工作,这是我发现同时滚动所有列表视图的唯一方法
    • 要将它们滚动在一起,您可以看到这个问题:stackoverflow.com/questions/12342419/…
    • 如果您尝试一些不寻常的事情,Google 总是个好主意:google.com.pk/…
    • 我已经用谷歌搜索了,我也发现了,但它看起来很复杂,我认为使用滚动视图会更容易。那么有人能解释一下为什么这不是一个好主意吗?
    • 这是一个很长的答案,为什么不先看这个视频google.com/events/io/2010/sessions/… 在这个视频中,他解释了许多其他事情,包括将ListView 放入ScrollView。简短的回答是ListView 有自己的滚动机制,确保回收视图以避免进入OutOfMemory 错误。我可以看到你的ListView 的高度等于 700dp,你有没有想过如果你的ListView 长于 700dp 会发生什么??
    猜你喜欢
    • 2013-07-23
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    相关资源
    最近更新 更多