欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在代码中设置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);