Android用<br>レイアウトの多重化/再利用

2778 ワード

Android用多重化/再利用レイアウト
で他のレイアウトファイルを埋め込む
<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"  
             xmlns:tools= "http://schemas.android.com/tools"  
   android:layout_width = "match_parent"  
   android:layout_height= "match_parent"  
   android:paddingBottom= "@dimen/activity_vertical_margin"  
     android:paddingLeft= "@dimen/activity_horizontal_margin"  
    android:paddingRight= "@dimen/activity_horizontal_margin"  
      android:paddingTop= "@dimen/activity_vertical_margin"  
   tools:context        = ".MainActivity"  
   android:orientation  = "vertical" >  
   <include layout= "@layout/titlebar">  
   <TextView  
      android:layout_width ="wrap_content"  
      android:layout_height ="wrap_content"  
      android:text ="@string/hello_world" >  
< LinearLayout>
現在のレイアウトで再利用コンポーネントのandroid:layout_*を再書き込みすることもできます.ツールバーの
<include  
   android:id ="@+id/news_title"  
   android:layout_width ="match_parent"  
   android:layout_height ="match_parent"  
   layout= "@layout/titlebar" >  

ラベルをルートとして使用し、
ラベルは、1つのレイアウトに別のレイアウトが含まれている場合に、ビュー階層で余分なビューグループを除去するのに役立ちます.メインレイアウトが垂直構造のLinearLayoutに他のレイアウトで再利用可能な2つの連続したビューが含まれている場合、レイアウトに配置された2つの再利用可能なビューにはそれぞれのルートビューが必要であり、別のLinearLayoutを使用して再利用可能なビューのルートビューとして使用する場合、垂直構造のLinearLayoutが別の垂直構造のLinearLayoutにネストされ、ネストされたLinearLayoutはUIのレンダリング速度を遅くする以外に実際の役割を果たしません.このような状況を回避するために、再利用可能なレイアウトコンポーネントのルートビューとしてラベルを使用することができます.
<merge xmlns:android="http://schemas.android.com/apk/res/android">
   <Button
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"
      android:text="@string/add">
   <Button
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"
      android:text="@string/delete">
<merge>
も同様にラベルを使用してレイアウトに追加され、Androidシステムはラベルを気にせず、2つのButtonをレイアウトに直接配置し、不要なネストを回避します.また、はレイアウトのルートノードとしてのみ使用可能であり、他のレイアウトコンポーネントを含むレイアウト自体がをルートノードとする必要がある場合は、インポートされたxml layoutをviewGroupに配置するとともにattachToRootをTrueとする必要がある