获取并设置layout_margin java

时间:2017-12-23 10:29:33

标签: java android android-linearlayout

我想要从java获取并设置我的LinearLayout的边距。我不想设置像右,左,上,下等。我只想从各方面设置简单的边距。我知道我可以通过XML来实现,但我知道如何通过java实现它。

我通过xml完成​​了如下

android:layout_margin="20dp"

任何人都可以建议我如何通过java做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码执行此操作。

 LinearLayoutview ll= findViewById(R.id.linearLayout); //or however you need it
 LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ll.getLayoutParams();

可以通过

访问边距
lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;

现在您可以使用代码

 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
 params.setMargins(20,20,20,20);
 ll.setLayoutParams(params);

答案 1 :(得分:1)

要为视图设置边距,您可以使用以下代码:



LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(30, 20, 30, 0);




要获得视角,请使用此代码



View view = findViewById(...) //or however you need it
LayoutParams lp = (LayoutParams) view.getLayoutParams();
   // margins are accessible via

lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;

// perhaps ViewGroup.MarginLayoutParams will work for you. It's a base class for //other LayoutParams.

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();




注意:很抱歉使用代码段... 它会像魅力一样......

答案 2 :(得分:0)

需要使用类型:MarginLayoutParams

试试这个:

MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
    params.width = 200; params.leftMargin = 100; params.topMargin = 200;

MarginLayoutParams的代码示例:

http://www.codota.com/android/classes/android.view.ViewGroup.MarginLayoutParams