嗨,伙计们,我的问题很简单
我想像 flowlayout 或 GridLayout 一样在一行中添加图像,如下图所示
在该布局上方,我想添加一个按钮,使其位于行之间。当我滚动我的网格视图时,按钮图像也会与网格视图一起滚动。
任何人都可以建议我一些想法如何成为可能
嗨,伙计们,我的问题很简单
我想像 flowlayout 或 GridLayout 一样在一行中添加图像,如下图所示
在该布局上方,我想添加一个按钮,使其位于行之间。当我滚动我的网格视图时,按钮图像也会与网格视图一起滚动。
任何人都可以建议我一些想法如何成为可能
如果它总是第四个项目 - 那肯定没问题。
使用 android:numColumns="3" 执行 GridView
在您的适配器中实现三种视图类型
这个想法是在第二行中添加两个空白项,并在中间添加一个按钮。
private static final int TYPE_NORMAL = 0;
private static final int TYPE_BLANK = 1;
private static final int TYPE_BUTTON = 2;
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getCount() {
return yourdata.size() + 3;
}
// return your real data by skipping row with the button
@Override
public Object getItem(int position) {
if (position > 3) {
position += 3;
}
return yourdata.get(position);
}
// return your real data ID by skipping row with the button The button probably should catch it's own onClickListemer
@Override
public long getItemId(int position) {
if (position > 3) {
position += 3;
}
return yourdata.get(position).getId();
}
@Override
public int getItemViewType(int position) {
switch(position) {
case 4:
case 6:
return TYPE_BLANK;
case 5:
return TYPE_BUTTON;
default:
return TYPE_NORMAL;
}
}
// only your items should be clickable
@Override
public boolean isEnabled(int position) {
return position < 4 && position > 6;
}
// nope, only your specific data items are enabled.
@Override
public boolean areAllItemsEnabled() {
return false;
}
在您的 getView 方法中,只需检查项目视图类型并膨胀正确的视图。有关实现具有多种项目类型的适配器的更多详细信息,请参阅带有节标题等的 ListView 示例。
http://w2davids.wordpress.com/android-sectioned-headers-in-listviews/