Androidで<br>ラベルの使用及び注意事項

5230 ワード

前言
  ラベルは、1つのlayoutで別のlayoutを参照するレイアウトを実現することができる.これは、通常、インタフェースレイアウトが複雑で、異なるインタフェースで共通のレイアウトがあるAPPに適している.例えば、1つのAPPの上部レイアウト、サイドバーレイアウト、下部Tabバーレイアウト、ListViewとGridViewの各項目のレイアウトなど、同じAPPで複数のインタフェースで使用されるレイアウトを抽出してラベル参照することで、layoutの複雑さを低減することができる.また、レイアウトの再利用も可能です(レイアウトに変更がある場合は、1つの場所を変更するだけでいいです).
使用方法
  ラベルの使用は簡単です.レイアウトファイルで他のレイアウトを参照する必要がある場所でlayout="@layout/child_layout"を使用すればいいです.


例えばinclude_voice_ctrl_bar_layout.xmlは抽出可能な共通レイアウトです.


    
    

  在需要使用该共用布局的地方作如下调用即可:


    
        
        
    


注意事項
  • includeは、他のコンポーネントラベル(RelativeLayout、LinearLayout、TextViewなど)と同様に、layoutプロパティを使用してレイアウトファイルの幅と位置を設定できますが、android:layout_を複写する必要があります.widthとandroid:layout_heightプロパティは、他のプロパティ(android:layout_grivity、android:layout_align...、android:idなど)を使用することができます.これにより、includeがlayoutのサブコンポーネントプロパティを参照してincludeのレイアウト効果に影響を及ぼすことを回避できます.
        
            
                
                
            
        
    
  • は、ラベル呼び出しレイアウトの幅、位置、IDなどを呼び出しレイアウトのルートラベルに配置することを推奨し、ラベル設定属性の不適切さによる様々な問題(includeラベルにandroid:id属性を設定した後、プログラムインスタンス化サブレイアウトでコンポーネントが失敗する現象):
  • を回避することができる.
    このようにすべきです.
    
    
        。。。
    
    

  • ではなく、
    
    
        。。。
    
    
  • android:id="@+id/bottomBarLayoutId"android:layout_width="match_parent"android:layout_height="61dp"android:layout_alignParentBottom="true"layout="@layout/include_voice_ctrl_bar_layout"/>

  • 参考資料
  • Does Android XML Layout's 'include' Tag Really Work?
  • Re-using Layouts with