5

私は通常、カスタム ビューを作成します。たとえば、

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を拡張します。RelativeLayoutLinearLayout

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); 

      }

    }
4

2 に答える 2

4

の代わりに要素res/layout/view_layout.xmlから始め<merge>くださいLinearLayout

于 2013-10-15T00:18:28.853 に答える