私は通常、カスタム ビューを作成します。たとえば、
public class MyView extends LinearLayout{
public MyView(Context context){
super(context);
//Inflating my custom layout
LayoutInflater inflater = getLayoutInflater();
inflater.inflate(R.layout.view_layout, this);
}
}
上記のレイアウトの問題は、新しいビューを作成して内部でLinearLayout
膨張させ、好ましくない新しいビュー階層を追加することです。R.layout.view_layout
R.layout.view_layout
多くの子要素が含まれRelativeLayout
ており、拡張してプログラムで追加することはできませんRelativeLayout
(配置が難しいため)。
不要な階層があると、アプリの速度が低下します。
custom views/view group
追加の階層レベルなしで作成する最良の方法は何ですか?
CommonsWare のソリューションに従って解決:
XML レイアウト:
<merge>
<TextView ...
.../>
More items
</merge>
XML レイアウトは親ビューとしてあったため、代わりにコードRelativeLayout
を拡張します。RelativeLayout
LinearLayout
public class MyView extends RelativeLayout{
public MyView(Context context){
super(context);
//Inflating my custom layout
LayoutInflater inflater = getLayoutInflater();
inflater.inflate(R.layout.view_layout, this);
}
}