私はLinearLayoutから派生したカスタムレイアウトマネージャを作成しました。で(私は実際のLinearLayout機能の多くを使用していないが、私は多くのViewGroupの抽象メソッドのすべてを気にする必要はありません。)私はAndroidカスタムレイアウトマネージャ - 子供のレイアウト
protected void onLayout(boolean changed, int l, int t, int r, int b)
方法上書きしていると私は(...)child.layout呼び出しますMyLayout.onLayout(...)その子それぞれに対して。他のすべてのものはオリジナルのLinearLayoutです。子どもがいない単純なコントロール(MyLayoutの孫)であれば、正常に動作し、子は親MyLayoutに正しく配置されます。
MyLayoutの子として子を持つViewGroup(LinearLayout、ViewSwitcher、...)を使用すると問題が発生します。このケースでは、子ども(MyLayoutの子ども)はうまく配置されますが、子どもの中には(MyLayoutの)孫が配置されません。パラメタとwrap_content、fill_parent、layoutWeightなどの値は正しく処理されていないようです。例えばMyLayoutでViewSwitcherは、その内容が表示されない、fill_parentとLinearLayouts(MyLayoutの子)子ども(MyLayoutの孫)が0PXの大きさを持って、CompoundButton(MyLayoutの子)が、時にはそのテキストを表示しません...
それMyLayout.onLayoutのchild.layout(...)は、各子のサイズと位置を正しく設定しているようですが、子がViewGroupであれば、それぞれの子がうまく動作するレイアウトを作るために、他のメソッドを呼び出す必要があります。そのようなものがありますか?MyLayoutを変更したばかりのonLayoutはうまくいくはずですか?
すべてのアドバイスありがとうございます。
あなたも – siliconeagle
どうもありがとうを測定した後getMeasuredWidth()&getMeasuredHeight()を使用することができchould!あなたが正しいです! –
ポイントを授与するのはどうですか?それは正しいことです..;) – siliconeagle