Articles of android gridview

OnClickListener不适用于GridView中的第一项

我在创建基于GridView的日历时遇到问题。 这是网格: 这应该是一个填充了事件的日历,所以我有我的适配器实现OnClickListener,我为日历中的每个按钮设置了该监听器。 它适用于每个按钮, 除了第一个按钮(在本例中为30)。 当我单击它时不起作用,但是当我尝试单击第一个按钮后单击另一个按钮时,它会在执行另一个按钮的单击之前执行第一个按钮。 我已经扫描了大约10页的相关问题,但没有发现有人遇到这个问题。 请帮助! 如上所述,这是我的代码的getView函数: public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ViewHolder holder; if (row == null) { holder = new ViewHolder(); LayoutInflater inflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = inflater.inflate(R.layout.calendar_day_gridcell, parent, false); holder.gridCell = (Button) row.findViewById(R.id.calendar_day_gridcell); holder.multiDayEvent = (EventLengthView)row.findViewById(R.id.eventLengthView); } else{ holder = (ViewHolder)row.getTag(); […]

在gridview适配器中,getView(position == 0)被调用太多次以在装载器中的setImageBitmap()时测量布局

我有一个GridView用于显示一些图标。 在我从Android开发者网站上有效地阅读这个显示位图之前,我直接在适配器的getView()中从本地路径解码位图,如下所示: public View getView(int position, View convertView, ViewGroup parent) { … ImageView icon = …… (from getTag() of convertView) icon.setImageBitmap(BitmapUtil.decode(iconPath)); … } 这种方式工作正常,我称之为[直接模式], getView()方法的输出日志应该是: getView(0) // measure kid’s layout. getView(0) getView(1) getView(2) … getView(n) // when scrolling gridview. getView(n+1) … getView(n+3) // scrolling again. getView(n+4) … 然后我试图将代码更改为有效显示位图的文章中提到的[Loader Mode],如下所示: public View getView(int position, View convertView, […]

GridView可以像ListView一样有一个页脚和标题吗?

一个简单的问题: 在ListView我使用以下代码: list.addHeaderView(headerView); 在gridview工作时如何处理? 谢谢。

GridView具有不同的列大小

试图创build一个可滚动的高分列表,如下所示: foo 1000 bar 876 foobar 500 foobarfoo 1 我目前正在做一个GridView。 我想将名称列的宽度设置为屏幕的60%,并将分数列的宽度设置为40%。 可能吗? 目前我正在尝试通过一个成本适配器。 这里是它的getviewfunction: public View getView(int position, View convertView, ViewGroup parent) { TextView tv; if (convertView == null) { tv = new TextView(context); tv.setTextSize(25); tv.setTextColor(Color.WHITE); if (position % 2 == 0) { tv.setLayoutParams(new GridView.LayoutParams((width/10)*6, 50)); } else { tv.setLayoutParams(new GridView.LayoutParams((width/10)*4, 50)); } } else […]

如何在图像上显示文字

我写了一个代码,其中我在GridView中显示图像,但现在我想在每个图像的底部显示文本。 我想显示我的网格是这样的: 但是越来越像这样[也想显示文字的图像]: main.xml中: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:verticalSpacing="0dp" android:horizontalSpacing="0dp" android:stretchMode="columnWidth" android:numColumns="2" /> </FrameLayout>

GridView只显示两列

我以编程方式创build了一个在对话框中使用的图像的GridView。 如果我将列设置为自动调整,则无论图像的大小和屏幕大小如何,我总是会得到两列。 如果我强制列的数量是固定的,那么它的工作原理,但我不能避免图像重叠在一定的屏幕大小,所以自动pipe理的列数会好很多。 更重要的是,当我尝试设置拉伸,它根本不显示任何东西! 我的ImageAdapter: public class ImageAdapter extends BaseAdapter { private Context mContext; // Constructor public ImageAdapter(Context c){ mContext = c; } public int getCount() { return (IconC.Res.length); } public Object getItem(int position) { return (IconC.Res[position]); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { […]

更新GridView / ListView而不重新填充

每当你更新一个GridView / ListView的时候,你notifyDatasetChanged在适配器上调用notifyDatasetChanged来重新填充列表中的新数据,删除当前列表中的所有内容。 现在把这个小video例如从L Previewdevise指南 是否有可能实现相同的效果,只有当你看到的新变化是在适配器重新加载时没有任何“闪烁”而进入的新项目,还是现在只能在L中完成的事情? 在添加新笔记时, Google Keep应用程序中也可以find这种效果

如何在更新gridview时避免闪烁?

我有一个gridview。 Im显示从10个图像的数组中的图像。 1分钟后,我又添加了5张图片。 更新gridview我使用下面的代码。 aImgAdapterL.notifyDataSetChanged(); aImgAdapterL是我的ImgaeAdapter。 新图像正在显示。 我的问题是当更新图像更新过程中更新gridview闪烁或闪烁发生。 是否有可能隐藏闪烁?

如何使用Android GridView设置等间距?

如何设置剩下的空间被平分? 例如,我有一个2列的GridView。 整个宽度是700px,列是200px:如何指定xml,所以剩余的空间(300px)被均匀分成3个部分? 即100px | 200px(第1列)| 100px | 200px(第2列)| 100px的

如何正确地居中GridView?

我一直在努力尝试,没有这样的运气。 我有幸在这里的所有其他答案以及有关居中GridView也没有运气。 这是我的GridView XML: <GridView android:id="@+id/calendar_grid" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="7" android:columnWidth="40dp" android:verticalSpacing="1dp" android:horizontalSpacing="1dp" android:paddingTop="2dp" android:stretchMode="columnWidth" android:layout_gravity="right" android:gravity="right" android:background="#696969" ></GridView> 我尝试了所有我能想到的组合,但没有太多工作。 至less它的设备之间不一致。 这是它总是做的一个形象。 正如你可以看到在GridView的右侧,有间距。 我试图不断地改变这一点,而且几乎从来没有工作。 使用android:stretchMode确实改变了它,但是它弄乱了我在单元格之间的间距,所以不能工作。 使用重力也失败,你可以看到。 我已经尝试了所有其他值,它仍然没有改变。 它卡在左边。 我也觉得很奇怪,试图改变从40以下的任何东西的任何东西的android:columnWidth的大小。 而当我增加40至45,也没有变化。 但将其改为50就会使右侧的空间消失。 但是,当把它放在我的手机上,间距就在那里! 我像2个星期前跳过这个,继续工作其他的东西,但它看起来像我还没有解决这个问题,甚至不明白为什么我没有尝试的作品。 如果它帮助任何人在这里帮助我,我也可以提供什么使单元格的XML。 但我不确定是否重要。 但这里是: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/day_num" android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="10dp" android:background="#000000" android:height="35dp" android:gravity="center_vertical|center_horizontal" /> </LinearLayout> 如果有帮助的话,那么GridView的父类是一个LinearLayout其中包含: […]