ScrollView中的图像网格

我正在尝试创建一个包含文本和图像的屏幕。我希望图像像网格一样布局,如下所示,但我希望它们没有周围ScrollView提供的滚动功能。


图像最能说明我的问题:


<ScrollView>

    <LinearLayout>

        <ImageView />

        <TextView />

        <GridView />

        <TextView />

    </LinearLayout>

</ScrollView>

什么是显示不同数量图像的网格的最佳方法,其中网格没有滚动功能?


请注意,禁用GridView的滚动功能不起作用,因为这只会禁用滚动条但不显示所有项目。


更新:下图显示了在GridView中禁用滚动条的情况。


不负相思意
浏览 582回答 3
3回答

泛舟湖上清波郎朗

你有2个解决方案:编写自己的自定义布局。这将是更难的解决方案(但可能被认为是正确的解决方案)。GridView在代码中设置您的实际高度。例如:&nbsp; RelativeLayout.LayoutParams lp =(RelativeLayout.LayoutParams)myGridView.getLayoutParams();&nbsp; // lp.setMargins(0,0,10,10); //如果你有布局边距,你也必须设置它们&nbsp; lp.height = measureRealHeight(...);&nbsp; myGridView.setLayoutParams(LP);该measureRealHeight()方法应该看起来像这样(希望我做对了):private int measureRealHeight(...){&nbsp; final int screenWidth = getWindowManager().getDefaultDisplay().getWidth();&nbsp; final double screenDensity = getResources().getDisplayMetrics().density;&nbsp; final int paddingLeft = (int) (X * screenDensity + 0.5f); // where X is your desired padding&nbsp; final int paddingRight = ...;&nbsp; final int horizontalSpacing = (int) (X * screenDensity + 0.5f); // the spacing between your columns&nbsp; final int verticalSpacing = ...; // the spacing between your rows&nbsp; final int columnWidth = (int) (X * screenDensity + 0.5f);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; final int columnsCount = (screenWidth - paddingLeft - paddingRight + horizontalSpacing - myGridView.getVerticalScrollbarWidth()) / (columnWidth + horizontalSpacing);&nbsp; final int rowsCount = picsCount / columnsCount + (picsCount % columnsCount == 0 ? 0 : 1);&nbsp; return columnWidth * rowsCount + verticalSpacing * (rowsCount - 1);}上面的代码应该适用于Android 1.5+。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android