Come impostare i parametri di layout di RelativeLayout in codice non in xml

Ad esempio voglio aggiungere 3 pulsanti sullo schermo uno allineare a sinistra, un centro di allineamento, l'ultimo allineare a destra

Come posso impostare il layout in codice, non in XML?

  • Non è ansible ignorare textAllCaps per i pulsanti in stile sotto android 21
  • Dove memorizzare gli hash, i sali e le chiavi nelle applicazioni desktop
  • Come incorporare VLC media player sul mio Android App
  • Rotazione di una camera SurfaceView al ritratto
  • Come posso impostare un TextView a un valore Long?
  • SearchView in ActionBar - problemi con il button * Up *
  • Desidera visualizzare una window di dialogo una sola volta dopo che l'applicazione è stata installata
  • Perché "System.out.println" non funziona in Android?
  • Getter non è associato a nessun field - Realm
  • Eclipse: l'installazione JRE specificata non esiste
  • Utilizzando php per aprire un stream audio live su android
  • Come aggiornare la notifica con RemoteViews?
  • 5 Solutions collect form web for “Come impostare i parametri di layout di RelativeLayout in codice non in xml”

    Solo un esempio di base:

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); Button button1; button1.setLayoutParams(params); params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.RIGHT_OF, button1.getId()); Button button2; button2.setLayoutParams(params); 

    Come potete vedere, è questo che devi fare:

    1. Creare un object RelativeLayout.LayoutParams .
    2. Utilizzare addRule(int) o addRule(int, int) per impostare le regole. Il primo metodo viene utilizzato per aggiungere regole che non richiedono valori.
    3. Impostare i parametri nella vista (in questo caso, ad each button).
      RelativeLayout layout = new RelativeLayout(this); RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layout.setLayoutParams(labelLayoutParams); // If you want to add some controls in this Relative Layout labelLayoutParams = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); labelLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); ImageView mImage = new ImageView(this); mImage.setBackgroundResource(R.drawable.popupnew_bg); layout.addView(mImage,labelLayoutParams); setContentView(layout); 

    Qualcosa come questo..

      RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.widget43); // ListView listView = (ListView) findViewById(R.id.ListView01); LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // View footer = inflater.inflate(R.layout.footer, null); View footer = LayoutInflater.from(this).inflate(R.layout.footer, null); final RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1); footer.setLayoutParams(layoutParams); 

    Come si fa a tirare il layout params dalla vista stessa se lo hai creato.

     $((RelativeLayout)findViewById(R.id.imageButton1)).getLayoutParams(); 

    Spero che il seguente codice aiuterà. Creerà un button EditText e un button di accesso. Entrambi posti relativamente. Tutto fatto in MainActivity.java.

     package com.example.atul.allison; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.Button; import android.graphics.Color; import android.widget.EditText; import android.content.res.Resources; import android.util.TypedValue; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Layout RelativeLayout atulsLayout = new RelativeLayout(this); atulsLayout.setBackgroundColor(Color.GREEN); //Button Button redButton = new Button(this); redButton.setText("Log In"); redButton.setBackgroundColor(Color.RED); //Username input EditText username = new EditText(this); redButton.setId(1); username.setId(2); RelativeLayout.LayoutParams buttonDetails= new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ); RelativeLayout.LayoutParams usernameDetails= new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ); //give rules to position widgets usernameDetails.addRule(RelativeLayout.ABOVE,redButton.getId()); usernameDetails.addRule(RelativeLayout.CENTER_HORIZONTAL); usernameDetails.setMargins(0,0,0,50); buttonDetails.addRule(RelativeLayout.CENTER_HORIZONTAL); buttonDetails.addRule(RelativeLayout.CENTER_VERTICAL); Resources r = getResources(); int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200,r.getDisplayMetrics()); username.setWidth(px); //Add widget to layout(button is now a child of layout) atulsLayout.addView(redButton,buttonDetails); atulsLayout.addView(username,usernameDetails); //Set these activities content/display to this view setContentView(atulsLayout); } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.