- <span style="font-size:14px;"> 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);
- }
- } </span>
addContentView和setContentView的区别:
两者的区别主要包括两点:1. 以添加UI组件是否被移除
setContentView() 会导致先前添加的被移除, 即替换性的;
而 addContentView() 不会移除先前添加的UI组件,即是累积性的
2. 是否控制布局参数
addContentView() 有两个参数, 可以控制布局参数; 你指出的这个setContentView 没有接受布局参数,
默认使用MATCH_PARENT; 不过setContentView()也有带两个参数的版本, 可以控制布局参数。