Como posso obter o valor da margem de uma visualização de uma atividade? A visualização pode ser de qualquer tipo.
Depois de pesquisar um pouco, descobri maneiras de obter o preenchimento de uma visualização, mas não consegui encontrar nada no Margin. Alguém pode ajudar?
Eu tentei algo assim,
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Isso funciona, mas no código acima, assumi que a visão era a LinearLayout
. Mas eu preciso pegar omargin
atributo mesmo quando não sei o tipo de visualização.
android
android-layout
android-view
Arnab Chakraborty
fonte
fonte
LayoutParams
. Há classes comoFrameLayout.LayoutParams
,RelativeLayout.LayoutParams
, mas nada comoLayoutParams
em si mesmo. E como não sei o tipo de vista, não posso usar nenhuma das classes anteriores.ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
então?Experimentar
Isso retornou as margens corretas para a minha visão, pelo menos.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
fonte
agora use este código editado. isso vai te ajudar
fonte
LinearLayout
comhorizontal
orientação. Se for a segunda vista no layout, oview.getLeft()
método me daria a coordenada da sua esquerda, mas a margem esquerda da vista de sua vista adjacente.LinearLayout
?Como outros sugeriram, layout_margin # é o espaço entre a # borda do pai e sua visualização.
Obter / definir margens funcionou para mim com:
Claro, meu View era de fato um ViewGroup e o pai era um ViewGroup também. Na maioria dos casos, você deve lançar seus parâmetros de layout para a classe View do pai, LayoutParams (neste caso, é ViewGroup e RelativeLayout)
fonte