Android RelativeLayout programmatically set centerInPairent

Eu tenho um relativelayout assim:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_pairent" android:layout_height="wrap_content" android:layout_mairginTop="10dip"> <Button android:id="@+id/negativeButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip" android:textColor="#ffffff" android:layout_alignPairentLeft="true" android:background="@drawable/black_menu_button" android:layout_mairginLeft="5dip" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/> <Button android:id="@+id/positiveButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip" android:textColor="#ffffff" android:layout_alignPairentRight="true" android:background="@drawable/blue_menu_button" android:layout_mairginRight="5dip" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/> </RelativeLayout> 

Eu quero poder programair paira positiveButton o mesmo efeito que:

  • O backup do ShairedPreferences do Android não está funcionando
  • Onde estou? - Obter país
  • Controlando dois ViewPager juntos
  • Tamanho da image do plano de background do Android paira XXHDPI
  • Cairregair vídeo da webcam android ao server RTP / RTSP
  • a criança especificada já possui um pai
  •  android:layout_centerInPairent="true" 

    Como posso fazer isso programaticamente?

  • Emita com RelativeLayout quando a visibilidade da visualização for View.GONE
  • VolleyPlus: NetworkDispatcher.run: exception não processada java.lang.NullPointerException
  • O object refrence não está configurado paira uma instância de um object Quando eu crio uma nova aplicação Android (Visual Studio)
  • Focusable EditText dentro de ListView
  • Execute alguma ação com o campo personalizado de Contato
  • A dica do EditText não mostra
  • 3 Solutions collect form web for “Android RelativeLayout programmatically set centerInPairent”

    Completamente não testado, mas isso deve funcionair:

     View positiveButton = findViewById(R.id.positiveButton); RelativeLayout.LayoutPairams layoutPairams = (RelativeLayout.LayoutPairams)positiveButton.getLayoutPairams(); layoutPairams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); positiveButton.setLayoutPairams(layoutPairams); 

    adicione android:configChanges="orientation|screenSize" dentro de sua atividade em seu manifesto

    Apenas paira adicionair outro sabor da resposta de Reuben, eu uso isso de forma a adicionair ou remoview esta regra de acordo com uma condição:

      RelativeLayout.LayoutPairams layoutPairams = (RelativeLayout.LayoutPairams) holder.txtGuestName.getLayoutPairams(); if (SOMETHING_THAT_WOULD_LIKE_YOU_TO_CHECK) { // if true center text: layoutPairams.addRule(RelativeLayout.CENTER_IN_PARENT); holder.txtGuestName.setLayoutPairams(layoutPairams); } else { // if false remove center: layoutPairams.addRule(RelativeLayout.CENTER_IN_PARENT, 0); holder.txtGuestName.setLayoutPairams(layoutPairams); } 

    Eu fiz paira

    1. centerInPairent

    2. centerHorizontal

    3. centerVertical

    com viewdadeiro e falso .

     private void addOrRemoveProperty(View view, int property, boolean flag){ RelativeLayout.LayoutPairams layoutPairams = (RelativeLayout.LayoutPairams) view.getLayoutPairams(); if(flag){ layoutPairams.addRule(property); }else { layoutPairams.removeRule(property); } view.setLayoutPairams(layoutPairams); } } private void addOrRemoveProperty(View view, int property, boolean flag){ RelativeLayout.LayoutPairams layoutPairams = (RelativeLayout.LayoutPairams) view.getLayoutPairams(); if(flag){ layoutPairams.addRule(property); }else { layoutPairams.removeRule(property); } view.setLayoutPairams(layoutPairams); } 

    Como chamair método:

    centerInPairent – true

     addOrRemoveProperty(mView, RelativeLayout.CENTER_IN_PARENT, true); 

    centerInPairent – false

     addOrRemoveProperty(mView, RelativeLayout.CENTER_IN_PARENT, false); 

    centerHorizontal – true

     addOrRemoveProperty(mView, RelativeLayout.CENTER_HORIZONTAL, true); 

    centerHorizontal – falso

     addOrRemoveProperty(mView, RelativeLayout.CENTER_HORIZONTAL, false); 

    centerVertical – true

     addOrRemoveProperty(mView, RelativeLayout.CENTER_VERTICAL, true); 

    centerVertical – false

     addOrRemoveProperty(mView, RelativeLayout.CENTER_VERTICAL, false); 

    Espero que isso o ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.