2015-07-22 4 views
-1

я использовать этот код, чтобы изменить положение моей точки зренияизменение взглядов

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)myview.getLayoutParams(); 
    params.topMargin = topmargin; 
    params.leftMargin = leftmargin; 
    myview.setLayoutParams(params); 

и ничего change.but, когда я использую этот код

myview.setTop(topmargin); 
myview.setLeft(leftmargin); 

будет work.now я хочу знаете, что не так с моим первым кодом?

потому что в Интернете так много людей предлагают первый код, чтобы изменить положение просмотров.

EDIT

также этот код не работает

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)myview.getLayoutParams(); 
    params.setMargins(100,100,0,0); 
    myview.setLayoutParams(params); 
    myview.requestLayout(); 

заранее спасибо

ответ

0

Попробуйте позвонить myview.requestLayout(); после myview.setLayoutParams(params);

UPDATE

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)myview.getLayoutParams(); params.setMargins(left,top, right,bottom); myview.setLayoutParams(params); myview.requestLayout();

+0

По-прежнему ничего не изменилось – user3707208

+0

Проверьте обновление в ответе. – Nishant

+0

спасибо за ваш ответ, но все тот же результат – user3707208

0

Вам необходимо позвонить requestLayout() после обновления макета Params

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)myview.getLayoutParams(); 
    params.topMargin = topmargin; 
    params.leftMargin = leftmargin; 
    myview.setLayoutParams(params); 
    myview.requestLayout(); 

И это краткое объяснение из официальной документации:

Устанавливает верхнее положение этого вида относительно его родителя. Этот метод должен быть вызван системой компоновки и обычно не должен быть , называемый иначе, поскольку свойство может быть изменено в любое время на .

  • topMargin (то же самое с leftMargin)

Верхнее поле в пикселях ребенка. Значения маржи должны быть положительным. Вызовите setLayoutParams (LayoutParams) после переназначения нового значения в это поле.

+0

все еще ничего не меняет – user3707208

Смежные вопросы