Android サンプル ( FixedGridLayout
) の 1 つは、 を拡張しViewGroup
て、新しい項目がグリッドに追加されたときのカスタム トランジションを可能にします。コードは期待どおりに機能しますが、スクロールは実装されていません。ScrollView
したがって、これで問題が解決することを期待して、レイアウト全体をラップしました。ただし、FixedGridLayout
ビューは実際には必要以上に大きく、アイテムの後にスクロール可能なスペースがたくさん残っているようです。
問題は onMeasure() の実装方法に関連していると思われます。私は正しいですか? もしそうなら、このコードの何が問題なのですか?
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int cellWidthSpec = MeasureSpec.makeMeasureSpec(mCellWidth, MeasureSpec.AT_MOST);
int cellHeightSpec = MeasureSpec.makeMeasureSpec(mCellHeight, MeasureSpec.AT_MOST);
int count = getChildCount();
for (int index=0; index<count; index++) {
final View child = getChildAt(index);
child.measure(cellWidthSpec, cellHeightSpec);
}
// Use the size our parents gave us, but default to a minimum size to avoid
// clipping transitioning children
int minCount = count > 3 ? count : 3;
setMeasuredDimension(resolveSize(mCellWidth * minCount, widthMeasureSpec),
resolveSize(mCellHeight * minCount, heightMeasureSpec));
}