android动态加载布局文件示例

时间:2023-12-10 20:42:46 

一、布局文件part.xml:


<RelativeLayout 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" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="64dp"
        android:text="添加" />
    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10" >
        <requestFocus />
    </EditText>
</RelativeLayout>

二、通过后台代码生成前台布局:


package com.example.codeui;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout layout=new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);//显示方向
        //将view对象添加到布局界面
        TextView textView =new TextView(this);
        textView.setText("Hello Code UI");
        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        //添加
        layout.addView(textView,params);
        //添加外部xml定义的布局
        View view = getPartView();
        layout.addView(view);  
        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);
        setContentView(layout, layoutParams);
        //setContentView(R.layout.activity_main);
        //采用代码编写效率高,但是很难维护
    }
    //通过加载xml文件将view添加到布局中
    public View getPartView() {
        //将xml布局文件生成view对象通过LayoutInflater
        LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //将view对象挂载到那个父元素上,这里没有就为null
        return inflater.inflate(R.layout.part, null);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

标签:android,布局
0
投稿

猜你喜欢

  • WinForm天猫双11自动抢红包源码分享

    2023-02-09 16:23:19
  • Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理

    2023-03-30 18:16:29
  • java字符串的重要使用方法以及实例

    2023-11-13 23:11:51
  • C#实现剪切板功能

    2023-01-16 12:26:48
  • c# 控件截图的简单实例

    2022-01-21 16:43:19
  • 事务在c#中的使用

    2021-11-27 23:30:29
  • 应用Java泛型和反射导出CSV文件的方法

    2022-02-25 19:50:17
  • Kotlin全局捕捉协程异常方法详解

    2022-10-09 23:27:03
  • Android基于高德地图完全自定义Marker的实现方法

    2023-03-09 03:32:30
  • Spring+Junit4进行接口测试实例代码

    2021-09-15 07:44:06
  • 不规范使用ThreadLocal导致bug分析解决

    2023-11-24 20:03:59
  • java连接SQL Server数据库的方法

    2022-10-14 04:16:56
  • Java注解之Elasticsearch的案例详解

    2022-03-30 12:28:58
  • 如何利用java实现生成PDF文件

    2023-03-31 16:25:36
  • Java模拟实现斗地主发牌

    2022-07-09 02:16:52
  • SpringCloud使用Feign实现远程调用流程详细介绍

    2021-06-02 06:47:16
  • android实现raw文件夹导入数据库代码

    2023-07-02 04:26:28
  • Android电量优化提高手机续航

    2022-06-14 11:39:40
  • Android利用属性动画实现优酷菜单

    2022-06-15 13:16:44
  • Java Swing实现简单的体重指数(BMI)计算器功能示例

    2022-12-16 09:34:56
  • asp之家 软件编程 m.aspxhome.com