zoukankan      html  css  js  c++  java
  • Android在layout xml中使用include

    Android include与merge标签使用详解 - shuqiaoniu的博客 - 博客频道 - CSDN.NET
    http://blog.csdn.net/shuqiaoniu/article/details/46013771

    Android的layout样式定义中,可以使用xml文件方便的实现,有时候为了模块的复用,使用include标签可以达到此目的。例如:

    <include layout="@layout/otherlayout"></div> 
    

    Android开发的官方网站的说明在这里。 
    其中,有提到:

    Similarly, you can override all the layout parameters. This means that any android:layout_* attribute can be used with the <include> tag.

    意思是任何android:layout_*属性都可以应用在标签中。

    如果使用如下代码:

    <Relativelayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    
        <Textview
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/somestring"
            android:id="@+id/top" />
    
        <include layout="@layout/otherlayout"
            android:layout_below="@id/top" />
    </Relativelayout > 
    

    发现include的otherlayout,并没有在如我们预期的在id/top这个TextView下面,而是忽略了android:layout_below属性。经过Google发现,很多人遇到类似的问题。

    有解决方法是在include的外面再包一层LinearLayout,如下:

    <Linearlayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/top" >
    
        <include layout="@layout/otherlayout">
    </Linearlayout > 
    

    在Statckoverflow上找到了更好的解决方法: 解答道:必须同时重载layoutwidth和layoutheight熟悉,其他的layout_*属性才会起作用,否这都会被忽略掉。上面的例子应该写成这样:

    <include layout="@layout/otherlayout">
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_below="@id/top" />
    

    另外,关于xml的复用,还可以使用merge标签,merge标签主要是用来优化显示的,减少View树的层级,可以参考这里:https://developer.android.com/resources/articles/layout-tricks-merge.html, 翻译版在这里:http://apps.hi.baidu.com/share/detail/20871363

     
     
     
    ref:

    Android在layout xml中使用include
    http://blog.csdn.net/race604/article/details/7564088

    Android里merge和include标签的使用 - xiabo852105的专栏 - 博客频道 - CSDN.NET
    http://blog.csdn.net/xiabo851205/article/details/7841937

    Android include与merge标签使用详解 - shuqiaoniu的博客 - 博客频道 - CSDN.NET
    http://blog.csdn.net/shuqiaoniu/article/details/46013771

  • 相关阅读:
    [HDU2866] Special Prime (数论,公式)
    [骗分大法好] 信息学竞赛 骗分导论(论文搬运)
    flayway数据库管理
    RabbitMQ的基本概念与原理
    springboot+ideal实现远程调试
    盘点总结
    mysql查看进程命令
    Java字符串正则文本替换
    springboot代码级全局敏感信息加解密和脱敏方案
    使用PMD进行代码审查
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6235447.html
Copyright © 2011-2022 走看看