通过代码设置TextView的margin参数_Android动态设置Margin的方法
2020-12-30 15:27:17  By: shinyuu

通过文档,查到TextView下有这么个方法setLayoutParams(ViewGroup.LayoutParams params),但是ViewGroup.LayoutParams这个东西,并没有setMargins方法,LinearLayout.LayoutParams才有,这可咋办?


手册上这样讲public void setLayoutParams (ViewGroup.LayoutParams params), 『该方法提供一些参数给父视图,指定了该view在父视图中的位置。


如果需要动态改变TextView(或者其它View)的margin属性(android:layout_marginTop, android:layout_marginBottom, android:layout_marginLeft, android:layout_marginRight),最好是通过代码动态添加这个View,而不是在layout中定义该View。

如果父视图是LinearLayout,那么就可以直接调用textView.setLayoutParams(params),然后在添加textView到LinearLayout:


方案1、如果这个控件实在XML中定义的  比如Textview

LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) textview.getLayoutParams();  
lp.leftMargin = 0;  
textview.setLayoutParams(lp);


方案2、如果这个空间是我们new出来的,就会会发现用上面的方法就会有空指针报错了。然后我们用另一种方法
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);  
layoutParams.setMargins(10,10,10,10);//4个参数按顺序分别是左上右下  
  
textview.setLayoutParams(layoutParams); 


第一种方法必须在控件已经存在的情况下才可以用。


猜你喜欢的

快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+