Android开发 - 布局文件之 include 导入额外布局文件视图的使用

简介

  • include是在一个布局中,导入另一个布局文件。优势是:相同的页面只需写一次,提高了共通布局的复用性。下面我们以标题栏为例,详细说明它的使用步骤

使用步骤

  • 第一步:通用布局 - 创建title_bar.xml

    // title_bar
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/bar"
        android:gravity="center"
        android:background="@android:color/holo_blue_light">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="标题栏"
            android:textSize="30dp"
            android:textColor="@android:color/white"
            />
    </LinearLayout>
    
  • 第二步:引入title_bar.xml布局

    • layout属性:引入其他布局

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
      
          <include layout="@layout/title_bar"/>
      
      </LinearLayout>
      
    • 引入后,效果图大致如下:

      img

  • 第三步:如果我们需要 include 两个甚至多个相同的布局时,如何区分其 ID 值呢?我们可以在 include 时重新指定一个新的id,用来区别

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <include
            android:id="@+id/bar1"
            layout="@layout/title_bar" />
        <include
            android:id="@+id/bar2"
            layout="@layout/title_bar" />
    </LinearLayout>
    
    //java代码:
    
     View bar1 = findViewById(R.id.bar1);
     View bar2 =  findViewById(R.id.bar2);
     TextView tv1 = (TextView) bar1.findViewById(R.id.textView);
     TextView tv2 = (TextView) bar2.findViewById(R.id.textView);
     tv1.setText("首页");
     tv2.setText("朋友圈");
    
posted @ 2024-07-20 16:26  阿俊学JAVA  阅读(11)  评论(0编辑  收藏  举报