动态产生 View 及设定 margin -- 以 TextView 为例
来源:互联网 发布:云服务器设计软件 编辑:程序博客网 时间:2024/06/09 18:57
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
- 动态产生 View 及设定 margin -- 以 TextView 为例
- 【Android进阶】Android自定义组件之自动换行View,以TextView为例
- 动态设置view的padding和margin值,TextView drawLeft drawRight
- android 动态添加TextView 设置margin
- 动态的改变Textview的margin属性
- margin为负值产生的影响
- 动态设定组件的宽度、高度以及margin等属性
- 自定义TextView支持第三方字体库(以隶书为例)
- 动态类型详解【以Python为例】
- 动态规划(以合唱团为例)
- 动态添加textview设置margin属性不生效
- margin为负值产生的影响和常见布局应用
- 动态为TextView设置drawableRight
- 自定义view的基本思路与步骤(以radioButton为例)
- 接口interface探索——以View.OnClickListner为例
- 以自定义圆形进度条为例阐述自定义view步骤
- 对现有的控件进行拓展,以TextView为例,为文本加彩虹渐变效果
- 动态加载及控制TextView
- OPENCV 实现png绘制,alpha通道叠加。
- N皇后问题的两个最高效的算法
- WebGL 权威资源站小聚
- 科目一通过
- Java基础——String
- 动态产生 View 及设定 margin -- 以 TextView 为例
- 【足迹C++primer】26、顺序容器操作
- 判断一颗二叉树是不是另一颗的子结构(只是一部分,未必是子树)
- 转行智能控制的这些年(月无声智控事业部的前世今生)
- class中指向Data Members的指针
- C++ Applications
- js 城市三级联动
- textarea的disabled与readonly属性简介
- bootloader与linux之间传参数