📜  包含和合并Android标签中的示例

📅  最后修改于: 2021-05-13 17:18:42             🧑  作者: Mango

Android应用程序正在增长,其中一个重要方面是可重用性。有时,应用程序设计的复杂性会越来越高,在此期间,Android通过标签提供了非常有效的可重用功能。在标记下,我们可以指定必须位于主布局中的一部分布局。它类似于具有Button,TextView等的主布局,可以在有意义的android命名约定XML文件中指定它。例如: custom_layout.xml。在主布局中,我们可以使用标记重用custom_layout。主要优点是许多应用程序页面可能需要custom_layout内容,并且在必要时可以使用标记轻松地将其包含在内。并且在修改的情况下,这是一个地方的改变,因此避免/减少了最大的返工。通常用于自定义,通过使用标签对应用程序内容进行重用的想法。

包含标签

这用于包含可重用内容的内容。在主布局中共享另一个布局的内容是一个非常好的主意。

XML


XML

  
    


XML

  
    
  
    
      


XML

  
    


Kotlin
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
      
    var customButton: Button? = null
    var customImageView: ImageView? = null
      
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
          
        // As custom layout contents are included, we can refer them as normal way
        // Main advantage lies here only. even this custom_layout can be reusued in different xml
        // and in corresponding activity file, they can be refered and there may be a 
        // different functionality can be carried out.
        // get the reference of custom Layout's Button
        customButton = findViewById(R.id.ButtonToInclude) as Button
  
        // get the reference of custom Layout's ImageView
        customImageView = findViewById(R.id.imageViewToInclude) as ImageView
  
        // We have clicked on Custom layout button, though it is in separate xml
        // because of include tag, it is getting focus here and we can do
        // activities as we like
        customButton!!.setOnClickListener { 
            Toast.makeText(applicationContext, "We have clicked on Custom layout button", Toast.LENGTH_LONG).show()
        }
    }
}


合并标签

标记可帮助我们在将一个布局包含在另一个布局中时消除视图层次结构中的多余视图组。因此,在我们的示例中,我们直接拥有了诸如Button和ImageView之类的android元素,因为这将被包含在主视图中,并且它将采用主文件中指定的布局,即activity_main.xml(main layout file)

XML格式


  
    

包含的属性

Attributes

Description

id To uniquely identify an include tag
layout

To supply an identifier for the layout resource to 

include a custom layout in our main layout.

例子

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。

步骤2:使用activity_main.xml文件

转到activity_main.xml文件,并参考以下代码。以下是activity_main.xml文件的代码。

XML格式


  
    
  
    
      

步骤3:创建一个新的布局资源文件

转到应用程序> res>布局>右键单击>新建>布局资源文件,并将文件命名为custom_layout 。以下是custom_layout.xml的代码,该文件应与合并内容一起显示。

XML格式


  
    

步骤4:使用MainActivity.kt文件

转到MainActivity.kt文件,并参考以下代码。下面是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。

科特林

import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
      
    var customButton: Button? = null
    var customImageView: ImageView? = null
      
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
          
        // As custom layout contents are included, we can refer them as normal way
        // Main advantage lies here only. even this custom_layout can be reusued in different xml
        // and in corresponding activity file, they can be refered and there may be a 
        // different functionality can be carried out.
        // get the reference of custom Layout's Button
        customButton = findViewById(R.id.ButtonToInclude) as Button
  
        // get the reference of custom Layout's ImageView
        customImageView = findViewById(R.id.imageViewToInclude) as ImageView
  
        // We have clicked on Custom layout button, though it is in separate xml
        // because of include tag, it is getting focus here and we can do
        // activities as we like
        customButton!!.setOnClickListener { 
            Toast.makeText(applicationContext, "We have clicked on Custom layout button", Toast.LENGTH_LONG).show()
        }
    }
}

在仿真器上运行代码

我们可以获取视频中附带的输出。必要时应用标记,并享受android应用程序的可重用性功能。

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!