2016-12-21 6 views
-1

カスタムビューをタップするたびにサウンドを再生するサウンドボードアプリケーションを構築しようとしています。私のUIを整理するために、レイアウトファイルを使用しました。LinearLayoutをViewに拡張する利点は何ですか?

私がViewを拡張したとき、私はレイアウトを膨らませようとしたときに動作しませんでした。

//Didn't work 
View v = View.inflate(context, R.layout.sound_view_layout, null); 

ただし、私がLinearLayoutを拡張したときに機能しました。

//Worked 
View v = View.inflate(context, R.layout.sound_view_layout, this); 

私の質問は

どのように私はプログラムが動作するためにレイアウトクラスを拡張するために必要な来ている、そうすることのメリットは何ですか?

答えて

0

レイアウトを拡張することしかできません。ビューを作成する場合は、new CustomView(context)を使用してください。

レイアウトを拡張する主な理由は、プログラムで子を追加したい場合、またはビューのコレクションが既に存在する場合です(たとえば、画像が上にあるビューCaptionedPhotoを作成したい場合など)これを行う1つの方法は、CaptionedPhotoをLinearLayoutを拡張し、イメージビューとテキストビューを保持することです)。

+0

両方の場所で同じ意味で「レイアウト」を使用している場合、最初の文は実際には正しくありません。たとえば、[simple_list_item_1](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/layout/simple_list_item_1.xml)。 –

関連する問題