gpt4 book ai didi

android - 以编程方式设置布局不会在 GridView 中显示项目

转载 作者:行者123 更新时间:2023-11-30 01:56:52 24 4
gpt4 key购买 nike

我是 Android 的初学者,正在构建我的第一个应用程序。我在布局如下的 gridView 中显示图像:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivityFragment">

<GridView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/fragment_main_gridView"
android:layout_centerHorizontal="true"
android:gravity="center"
android:numColumns="5"
android:layout_alignParentTop="true"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp"
android:clickable="true"/>

</RelativeLayout>

适配器中的getView方法(扩展ArrayAdapter)如下:

 @Override
public View getView(int position, View convertView,ViewGroup parent){
ImageView imageView = (ImageView)convertView;

if(convertView == null){
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(GridLayout.LayoutParams.MATCH_PARENT, GridLayout.LayoutParams.MATCH_PARENT)); //Always maintain aspect ratio of 1:1.5
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}

Picasso
.with(mContext)
.load(mImageUrls.get(position))
.fit()
.into(imageView);

return imageView;
}

使用上述布局,网格上不会显示任何内容。

但是,如果不是将 LayoutParams 设置为 MATCH_PARENT 我会做类似的事情new GridView.LayoutParams(layout_width, layout_height) 其中 layout_width 和 layout_height 预定义为某个值,显示图像。任何关于为什么会发生这种情况的想法将不胜感激!

最佳答案

我导入了您的代码,最初我用延迟的 Runnable 替换了 Picasso 调用,只是为了查看布局是否有任何问题。我可以很好地看到测试图像。

所以我添加了 Picasso 依赖项并使用相同的图像(android.R.drawable 资源)我看到了一个空白页面。所以问题出在 Picasso 调用中的某处。我添加了以下几行:

.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)

Picasso 设置,果然,我只看到了错误占位符。观看 logcat 我可以看到 SkImageDecoder::Factory 到处都返回 null。关于此的最常见主题之一是在请求没有扩展名的图像时。但似乎有很多原因,而且我没有那么多地使用 Picasso,所以对它了如指掌。

关于android - 以编程方式设置布局不会在 GridView 中显示项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080373/

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