2014-10-16 3 views
0

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

 mainScreen = (RelativeLayout) v.findViewById(R.id.main_screen); 
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)mainScreen.getLayoutParams(); 
     params.setMargins(0, 390, 0, 0); 
     mainScreen.setLayoutParams(params); 

Thanks.

+0

почему бы вам не установить его в XML? –

+0

На ссылочном сайте (http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html): 'Необходимо выполнить вызов requestLayout(), чтобы новые поля были приняты во внимание. ' –

+0

Я не могу это сделать в xlm, потому что этот макет, предположим, должен двигаться в анимации после того, как я нажму кнопку. то есть. макет 1 будет охватывать макет 2. Когда пользователь нажимает кнопку, макет 1 перемещается вперед, вот почему мне нужно изменить маржу для макета 1. Эти два макета как внутри FrameLayout. – kggoh

ответ

0

Вы можете использовать это только, чтобы установить только верхний предел:

params.topMargin=10; //It will set value in pixel 
+0

Sweet ... Спасибо. – kggoh

2

просто читать другой край от LayoutParams объекта вы получите форму getLayoutParams()

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)mainScreen.getLayoutParams(); 
params.setMargins(params.leftMargin, 390, params.rightMargin, params.bottomMargin); 
Смежные вопросы