XMLレイアウトファイルからカスタムビュークラスを作成する最良の方法は?

StackOverflow https://stackoverflow.com/questions/8864709

質問

多数のサブビュー(TextViews、ImageViewsなど)を含む「myview.xml」という名前のXMLレイアウトファイルで定義されたrelativeLayoutがあります。

このRelativeLayoutを表す「MyView」という名前のビューオブジェクト/クラスを作成したいと思います。これにより、MyViewのインスタンスをプログラムで追加(および取得)できるメソッドを使用してサブビューのプロパティを変更できます。 (from)他のビュー。

これを行うための最良の方法は何ですか?現時点では、Framelayoutを拡張し、FrameLayoutの3つのコンストラクターをオーバーライドする「MyView」という名前のクラスを作成しています。

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.myview, null);
addView(view);

...これは機能しますが、それは私の関係すべてがframelayoutsに含まれていることを意味します。したがって、私のビュー階層には余分な(不要な)レイヤーがあります...

役に立ちましたか?

解決

私はほとんど同じことをします。しかし、私はnullではなく「これ」を送り、親ビューにそのビューを追加しないでください。

LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.myview, this);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top