addContentView的两个好用的技巧

android 添加新的XML布局我这里使用过的有两个方法
setContentView(R.layout.activity_home_page);

第一个是setContentView,第二个addContentView;首先setContentView 会替换掉之前添加的layout布局,而addContentView可以不继续在同一个activity里面添加多个不同的layout布局,不会出现替换的情况,这里介绍两个使用addContentView的技巧

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);

这是一种使用方法,“FrameLayout”可以根据需要使用自己的layout,首先new对应的layout的layoutParams并设置宽高,之后new自己需要的控件(button,textView..),通过gravity设置对应控件的位置,最后通过addContentView 将控件(button,textView..)和layoutParams作为参数添加到addContentView,这样的开发方式和iOS也是类似的,iOS也是可以直接控件初始化,并设置控件宽高,通过addsubview添加到界面里面,不同的是iOS是通过坐标系,来控制控件的坐标(x,y),在iOS里面是以界面的左上角的那个点作为二维坐标系的原点,向右延伸是x轴,向下延伸是y轴,这里不多做介绍,有兴趣的可自行查找资料。

第二个技巧:

结合LayoutInflater,可以将某一个layout的布局添加到当前activity,这个个人觉得比较很好用,实现方式如下:

LayoutInflater mlayoutInflater = LayoutInflater.from(this);

/**
 * bottom_menu layout file 
 * */
View view = mlayoutInflater.inflate(R.layout.bottom_menu, null);
/**
 * set RelativeLayout width and height
 * */
RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams
        (RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);

this.addContentView(view,relLayoutParams);
bottom_menu是layout 文件,里面是布局设置,通过这样的方式可以直接将自己layout文件加载到当前的activity。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值