私はレイアウトを行う独自の View サブクラスを持っています (私はそれを ViewGallery と呼びます)。私の問題は、手動で描画したビューが画面に表示されないことです。これが onDraw メソッドです。
@Override
protected void onDraw(Canvas canvas) {
for(Child child : visibleChilds){
canvas.save();
canvas.clipRect(child.bounds);
child.view.draw(canvas);
canvas.restore();
}
}
private List<Child> visibleChilds = new ArrayList<ViewGallery.Child>();
private static class Child {
private View view;
private Rect bounds;
public Child(View view, Rect rect) {
this.view = view;
bounds = rect;
}
}
私の知る限り、指定されたクリップされたキャンバスに内側のビューを描画する必要があります。
なぜビューがまだ空なのですか?
また、ViewGroup を拡張しようとしたので、自分自身をアダプターのパラメーターとして渡しましたが、デフォルトの ViewGroup.LayoutParams には、ビューの適切な変換を処理するために必要な左 (または x) プロパティがありません。しかし、それをサブクラス化すると、onDraw が呼び出されず、子がまだ表示されません。