在代码中设置leftMargin和rightMargin和gravity值
程序员文章站
2022-04-24 21:07:34
...
一、引言
在实际开发中,往往需要更灵活地控制布局位置,譬如说控件的左边距要根据其左边TextView的文字长度来变化leftMargin,此时就应该在代码中实现动态变化
二、正文
布局文件片段如下:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
...>
<TextView
android:id="@+id/text"
style="..."/>
<TextView
android:id="@+id/example"
style="..."/>
...
</LinearLayout>
具体实现代码片段如下:
TextView text= (TextView) itemView.findViewById(R.id.text);
TextView example= itemView.findViewById(R.id.example);
if (text!= null && example!= null && !TextUtils.isEmpty(text.getText())) {
//根据text里内容的长度设置leftMargin
int len = (int) text.getPaint().measureText(text.getText().toString());
LinearLayout.LayoutParams rlp = (LinearLayout.LayoutParams) example.getLayoutParams();
rlp.leftMargin = len + ...;
}
这里要根据不同布局配置来做转换,比如这里TextView 是在LinearLayout布局内,所以转换为:LinearLayout.LayoutParams
设置gravity就比较简单:
leftView.setGravity(Gravity.CENTER_VERTICAL);
下一篇: 字符指针数组的使用及排序