package com.Layout.main;

import android.app.Activity;

import android.os.Bundle;

import android.view.Gravity;

import android.widget.Button;

import android.widget.FrameLayout;

import android.widget.TextView;

public class LayoutActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.main);

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams

(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);

//设置顶部,左边布局

params.gravity=Gravity.TOP|Gravity.LEFT;

TextView top=new TextView(this);

//控件字体位置位于左边

top.setGravity(Gravity.LEFT);

top.setText("顶部");

//添加控件

addContentView(top, params);

FrameLayout.LayoutParams params2 = new FrameLayout.LayoutParams

(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);

//设置中间位置

params2.gravity=Gravity.CENTER;

TextView center=new TextView(this);

//字体位于中部

center.setGravity(Gravity.CENTER);

center.setText("中部");

//添加控件

addContentView(center, params2);

FrameLayout.LayoutParams params3 = new FrameLayout.LayoutParams

(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);

//设置底部

params3.gravity=Gravity.BOTTOM|Gravity.RIGHT;

Button bottom=new Button(this);

//字体位于中部

bottom.setGravity(Gravity.RIGHT);

bottom.setText("底部");

//添加控件

addContentView(bottom, params3);

}

}

addContentView和setContentView的区别:

两者的区别主要包括两点: 1.  以添加UI组件是否被移除 setContentView() 会导致先前添加的被移除, 即替换性的; 而 addContentView() 不会移除先前添加的UI组件,即是累积性的 2. 是否控制布局参数 addContentView() 有两个参数, 可以控制布局参数; 你指出的这个setContentView 没有接受布局参数, 默认使用MATCH_PARENT;  不过setContentView()也有带两个参数的版本, 可以控制布局参数。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐