动态产生 View 及设定 margin -- 以 TextView 为例

ref: http://stackoverflow.com/questions/15636401/how-to-set-margins-for-textview-programatically

因为自己练习写 App 的时候,有这个需求,所以就查了一下如何实现如何在一个布局中动态的产生 TextView 并且配上属性(margin, padding, textsize, background...etc),

但是发现许多属性可以直接的找到设定的相关 api ,但是 margin 并没有 api 可以让使用者直接的去调用,因此把找到的方法和写的简单例子简单记录一下。


首先,我们要先取得子 TextView 要放的布局

        // 取得 LayoutInflater 将 xml 转成 view,方便後面动态的加载子 View
        LayoutInflater mInflator = LayoutInflater.from(this);
        LinearLayout mainView = (LinearLayout) mInflator.inflate(R.layout.activity_main, null);

如果这个布局是最外面的布局,记得要把它设置成 ContentView,不然不会出现。

        // 将这个 View 设为 ContentView, 别忘了这个,不然就是一片空白唷
        setContentView(mainView);


然後,要用 LinearLayout.LayoutParams 类,设置这个子 TextView 的属性,如: TextView 的宽、高,还有 margin 等。

        // child TextView 会用到的布局参数
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
        // 设 TextView margin bottom的值,单位为 pixel
        params.setMargins(0, 0, 0, 20);

最後~就成功了~ 


完整范例下载:https://github.com/shanwu/shanwu_coding_base/tree/programatically_add_textview_example


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值