gpt4 book ai didi

Android:将 GridView 包装在对话框中

转载 作者:行者123 更新时间:2023-11-29 22:23:58 25 4
gpt4 key购买 nike

有谁知道如何包装 GridView 吗?

尽管在 GridView 和父 LinearLayout 上都将 layout_width 设置为 wrap_content,但 GridView 仍然大于其 3 列内容(大约是内容宽度的两倍)。还尝试应用固定的 layout_width = ... dp。那也不管用。

关于如何包装 GridView 有什么想法吗?见下文。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp" >

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnWidth="90dp"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="none"
android:gravity="center" />

</LinearLayout>

最佳答案

将 LinearLayout 和 GridView 设置为“wrap_contents”是行不通的,因为如果您不给它一个特定的大小,GridView 几乎默认为“fill_parent”。我做了一些测试,根据您创建 View 的方式,您有多种解决方案:

将 LinearLayout 设置为 android:layout_width="100dip"

View view = getLayoutInflater().inflate(R.layout.grid_dialog, null);
dialog.setContentView(view);

=> 没有按预期工作:充气器在充气时没有父 View ,所以它只是没有考虑所有 android:layout_XXX 属性。

    dialog.setContentView(R.layout.grid_dialog);

=> 按预期工作,因为这次对话框将进行膨胀并了解父 View 。如果需要,您可以使用 dialog.findViewById 检索 gridview....

将 GridView 设置为 android:layout_width="100dip"

显然一直有效,因为它在膨胀时有一个父级,所以 layout_XXX 属性实际上有效。

这一切并不完美,因为它没有在 GridView 上执行真正的 wrap_content,您必须手动设置 layout_width,但它应该可以工作。

关于Android:将 GridView 包装在对话框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462421/

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