我正在使用GridLayoutManager的回收器视图。我还使用以下代码使第一个项目变大
lLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int i) {
if (i==0) return 2;
else return 1;
}
});
除了一个以外,其他一切都正常:位置1处的物品(即大图中的下一个物品)被垂直拉长,以匹配大件物品的高度。从第3行开始,所有图像如图所示。
我怎么才能摆脱这个?
编辑:经过一些分析
所以问题似乎是,大图像是水平的两个跨度,但垂直的单个跨度,因为我已经强制我的ImageView是方形的,它看起来像是也取了两行,而实际上它是单行。由于这个原因,第二张图像似乎拉长了。
所以现在我的问题是,如何使网格项垂直和水平分别取两个跨度?
在GridViewAdapter类中尝试以下代码
public class GridViewAdapter extends BaseAdapter {
private Context context;
private ArrayList<Integer> imageArrayList = new ArrayList<>();
private int type;
public GridViewAdapter(Context context, ArrayList<Integer> imageArrayList) {
this.context = context;
this.imageArrayList = imageArrayList;
}
@Override
public int getCount() {
return imageArrayList.size();
}
@Override
public Object getItem(int position) {
return imageArrayList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = new ViewHolder();
if(convertView==null){
LayoutInflater inflater = LayoutInflater.from(context);
type = getItemViewType(position);
if(type==0) {
convertView = inflater.inflate(R.layout.big_layout,parent,false);
}else {
convertView = inflater.inflate(R.layout.small_layout, parent, false);
}
viewHolder.imageView = convertView.findViewById(R.id.imageView);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.imageView.setImageDrawable(context.getResources().getDrawable(imageArrayList.get(position)));
return convertView;
}
@Override
public int getViewTypeCount() {
return super.getViewTypeCount();
}
@Override
public int getItemViewType(int position) {
if(position==0) {
return 0;
}else{
return 1;
}
}
private class ViewHolder{
ImageView imageView;
}
}
尝试使用StaggeredGridLayoutManager而不是GridLayoutManager StaggeredGridLayoutManager支持水平
final ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
if (position == 0) {
StaggeredGridLayoutManager.LayoutParams sglp = (StaggeredGridLayoutManager.LayoutParams) lp;
sglp.setFullSpan(true);
holder.itemView.setLayoutParams(sglp);
}
找到例子http://enoent.fr/blog/2015/01/18/recyclerview-basics/...希望对你有帮助
我正在学习JavaFX。我想在几秒钟后一个接一个地显示一些图标。我的代码不起作用。我写了一些代码。和图标存储在一个单独的文件夹称为图像。 我在网上找不到合适的答案。我想知道它是如何完成的逻辑,我还需要知道什么。因为单个图像I可以容易地显示。但是我不知道如何一个接一个地显示多个图像。
我想知道他们的AndEngine的任何子库可以变形两个不同的图像吗?或者在Android系统中?我一直在找它,但我没有找到任何东西。帮帮我...
本文向大家介绍如何做图片预览,如何放大一个图片?相关面试题,主要包含被问及如何做图片预览,如何放大一个图片?时的应答技巧和注意事项,需要的朋友参考一下 https://blog.csdn.net/Bule_daze/article/details/79543690
用 subplot 命令可以在同一窗口中作多幅图或把它们打印到同一纸上。输入 subplot(m,n,p) 把figure窗口分成m*n个子区域及选择第p个区域为当前图。所作图是从figure窗口的顶行开始标号,然后第2行,依次类推。例如,以下语句在figure窗口的4个不同子区域分别作图。 t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subp
问题内容: 目前,这是我的kv代码,无法滚动: 您如何使上面的kv代码可滚动?我知道Kivy ScrollView仅接受一个孩子,并且我已经使GridLayout成为新ScrollView的孩子。但这不起作用。有什么建议吗? 问题答案: 根据ScrollView的文档,您必须至少禁用ScrollView的子size_hint之一: 并绑定布局的大小以适应自身:
我使用以下代码生成gagawa图表: 我得到这个图表: 如何放大文本(x轴、y轴、图例和标题)?