XMLレイアウトファイルからカスタムビュークラスを作成する最良の方法は?
-
28-10-2019 - |
質問
多数のサブビュー(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);
所属していません StackOverflow