这个问题有点奇怪。我有GridLayoutmanager
与Recyclerview
相关联,此Grid
有两行5行,另外两列,每隔一行的大小为2列。
CELL1-CELL2
C E L L 3
CELL4-CELL5
第二行有一个大小为两个单元格的单元格。这一步,我已经完成了,没有任何问题,现在我的要求。
我有一个方形的Linearlayout,代码如下:
public class SquareLinearLayout extends LinearLayout {
public SquareLinearLayout(Context context) {
super(context);
}
public SquareLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquareLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//noinspection SuspiciousNameCombination
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
}
我已将此布局应用于Grid
的项目,因此每个单元格都具有完美的宽度和高度,除了第三个单元格,因为它具有两个单元格的大小。这是我的问题,我希望它占用两个单元格的空间,但不是两个单元格的大小。
答案 0 :(得分:0)
所以我做了一个无用的技巧。我创建了两个自定义视图,一个用于LinearLayout
,另一个用于ImageView
。在LinearLayout
中,我将widthMeasureSpec
保存在另一个名为Constants
的类中的静态常量中,并添加了boolean
以仅保存一次值。
,我从ImageView
获取了该值并将其应用于Constants
的{{1}}。
有点棘手,但做了工作。 2细胞空间,但一个细胞大小,最重要的是,在中心。