2013-06-27 3 views
0

У меня есть коды в RelativeLayout activity.xmlУстановить макет поле для элемента RelativeLayout кодом

<RelativeLayout 
    android:layout_height="50dip" 
    android:layout_width="fill_parent" 
    android:id="@+id/relativeLayout"   
    android:background="#686868" 
> 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_margin="5dip" 
     android:layout_alignParentLeft="true" 
     android:text="Back" 
     android:textColor="#FFFFFF" 
     android:id="@+id/btnBack" 
    /> 
    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/title_header" 
     android:text="Header of page" 
     android:layout_centerInParent="true" 
     android:textColor="#FFFFFF" 
    /> 
</RelativeLayout> 

А вот код деятельности: -

public class MainActivity extends Activity { 
     int valCheck; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity); 
       if(valCheck==0) 
       { 
        //here set title again for backbutton is "backPreviousPage" and set 
        //position again of title_header is right of backButton with 
        //margin=5dip(not set position is centerInParent as code 

       } 


    } 

} 

Я не знаю, как получить элемент и установить маржу в relativeLayout по коду .. Можете ли вы мне помочь?

ответ

0

Попробуйте этот путь.

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)relativeLayout.getLayoutParams(); 
params.setMargins(80, 0, 0, 0); //left, top, right, bottom 
params.height = 60; //set height dynamically 
params.width = 200; // set width dynamically 
relativeLayout.setLayoutParams(params); 

Надеюсь, это поможет вам.

+0

headView и head_params где? – anata

+0

Проверьте отредактированный ответ. – Gunaseelan

0

Чтобы получить доступ к элементам пользовательского интерфейса в коде Android, вы используете метод findViewById. Например:

Button btnBack = (Button)findViewById(R.id.btnBack); 

После того, как у вас есть доступ ко всем элементам вам нужно, вы можете использовать функции сеттер, предусмотренные в API, чтобы изменить расположение, как нужно быть. Поскольку большинство (если не все) элементов пользовательского интерфейса являются дочерним классом класса View, методы, которые вам понадобятся, скорее всего будут определены там. Вот хорошая рекомендация: http://developer.android.com/reference/android/view/View.html

Все объекты View наследуют метод setLayoutParams. Таким образом, вы можете применить метод, предложенный Gunaseelan, к вашей Button и вашему TextView.

0

Это может поможет вам

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 

    params.addRule(RelativeLayout.CENTER_IN_PARENT); 
    params.addRule(RelativeLayout.RIGHT_OF, 1001); 
    params.addRule(RelativeLayout.LEFT_OF, 1000); 

Здесь идентификатор 1001 и 1000 мой EditTextid который также динамический добавлен в относительной

0

Попробуйте этот код ....

<LinearLayout 
    android:layout_height="50dip" 
    android:layout_width="fill_parent" 
    android:id="@+id/linearLayout"   
    android:background="#686868" 
    android:orientation="horizontal" 
> 
<Button 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_margin="5dip" 
    android:layout_alignParentLeft="true" 
    android:text="Back" 
    android:textColor="#FFFFFF" 
    android:id="@+id/btnBack" 
/> 
<TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:id="@+id/title_header" 
    android:text="Header of page" 
    android:layout_centerInParent="true" 
    android:textColor="#FFFFFF" 
/> 
</LinearLayout> 

и java code ...

public class MainActivity extends Activity { 
    int valCheck; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity); 

    Button btn = (Button) findViewById(R.id.btnBack); 
      if(valCheck==0) 
      { 
       //here set title again for backbutton is "backPreviousPage" and set 
       //position again of title_header is right of backButton with 
       //margin=5dip(not set position is centerInParent as code 
       btn.setText("backPreviousPage"); 
      } 
    } 
}