Get margin of a View

前端 未结 4 990
遇见更好的自我
遇见更好的自我 2021-01-31 13:28

How can I get the margin value of a View from an Activity? The View can be of any type.

After a bit of searching I found out ways to get padding of a view, but couldn\'

相关标签:
4条回答
  • 2021-01-31 13:40

    Try

    ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams()
    
    vlp.rightMargin
    vlp.bottomMargin
    vlp.leftMargin
    vlp.topMargin
    

    This returned the correct margains for my view atleast.

    http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

    0 讨论(0)
  • 2021-01-31 13:45

    As others suggested, layout_margin# is the space between the parent's # edge and your view.

    • # replaces "Left", "Right", "Top" or "Bottom"

    Getting/setting margins worked for me with:

    ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams();
    params.topMargin += 20;
    mView.requestLayout();
    

    Of course, my View was indeed a ViewGroup and the parent was a ViewGroup as well. In most cases, you should cast your layout params to the parent's View class LayoutParams (in this case it's ViewGroup and RelativeLayout)

    0 讨论(0)
  • 2021-01-31 13:52

    try this:

    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;
    

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

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

    http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

    0 讨论(0)
  • 2021-01-31 13:54

    now use this edited code. this will help you

    FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams();
    
    lp.leftMargin  // for left margin
    lp.rightMargin   // for right margin
    
    0 讨论(0)
提交回复
热议问题