且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android 动态生成布局 (多层嵌套)

更新时间:2022-09-16 21:05:13

Android 除了能够载入xml文件,显示布局外,也能够代码生成布局,并通过setContentView(View view)方法显示布局。单独的一层布局,如一个主布局加一个控件(如Button\imageView等)动态生成代码比較简单。以下仅仅给出演示样例代码:

package com.example.android_dongtaishengcheng;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.widget.RelativeLayout.LayoutParams;

public class MainActivity extends Activity
{
    RelativeLayout relativeLayout = null;
    private Button button;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
	super.onCreate(savedInstanceState);
	relativeLayout = new RelativeLayout(this);
	LayoutParams params = new LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
		RelativeLayout.LayoutParams.MATCH_PARENT);
	relativeLayout.setLayoutParams(params);
	relativeLayout.setBackgroundResource(R.color.back);
	setContentView(relativeLayout);
	
	button = new Button(this);
	LayoutParams params2 = new LayoutParams(300, 300);
	button.setLayoutParams(params2);
	params2.addRule(RelativeLayout.CENTER_IN_PARENT);
	button.setText("hello");
	relativeLayout.addView(button);
	button.setOnClickListener(new View.OnClickListener()
	{
	    
	    @Override
	    public void onClick(View v)
	    {
		// TODO Auto-generated method stub
		startActivity(new Intent(MainActivity.this,SecondActivity.class));
	    }
	});
    }
}
以下进入重点:多层嵌套布局的动态生成。

情景描写叙述:父布局是一个线性布局,其子布局按竖直方向排列。子布局的子布局也是一个线性布局,按水平方向排列。


事实上非常easy,关键点在于。怎样控制主布局的子布局换行显示。即实现Orientation = "vertical"。能够在子布局外在加一层布局,即以下的drawParent()方法,该方法用来生成父布局的直接子布局,drawView()方法用来生成直接子布局的子布局(该布局也是多层嵌套)。能够实现例如以下图效果:

Android 动态生成布局 (多层嵌套)

贴出代码例如以下:


}









本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5111135.html,如需转载请自行联系原作者