2017-02-15 4 views
0

Was kann ich tun, damit die android:background Farbe der Schaltfläche die LinearLayout android:background Farbe nicht deaktiviert? Es ist beim dynamischen Erstellen von Schaltflächen. Hier ist mein Code:Schaltfläche BackgroundColor deaktiviert die LinearLayout Hintergrundfarbe

for (int i = 0; i < myList.size(); i++) { 
     LinearLayout ll = (LinearLayout) findViewById(R.id.layout1); 

     ll.setBackgroundColor(Color.parseColor("#FFFFFF")); // WHITE 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     Button myButton = new Button(this); 
     myButton.setText(myList.get(i)); 

     myButton.setBackgroundColor(getResources().getColor(R.color.naranja)); // ORANGE 

     ll.addView(myButton, lp); 
     myButton.setId(i); 
     myButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { ……… 

Antwort

2

Es ist nicht die Hintergrundfarbe zu deaktivieren, können Sie auf es sind zu ziehen. Wenn Sie die LayoutParams für Breite in WRAP_CONTENT ändern, werden Sie feststellen, dass die Hintergrundfarbe immer noch weiß ist. Wenn Sie zusätzlich eine Füllung um die Schaltfläche hinzufügen, werden Sie das Gleiche bemerken.

+0

Ja, es funktioniert WRAP_CONTENT für die Breite ändern, aber das ist nicht, was ich mag. Ich denke, dass Padding das Problem lösen würde. Alle Parameter, die ich in dieser Anweisung schreibe, ändern jedoch nichts: Die Hintergrundfarbe der Schaltfläche deaktiviert die Hintergrundfarbe: myButton.setPadding (0, 10, 0, 0); // ODER ANDERE OTHERS – FAR

+0

Versuchen Sie, Rand und nicht Polsterung hinzuzufügen. – Mikerizzo

+0

Entschuldigung, ich habe das Problem gefunden. Ich mussteMargins auf LayoutParams setzen und dannLayoutParams auf meine Ansicht setzen, so: params.setMargins (0, 10, 0, 10); myButton.setLayoutParams (params); – FAR

Verwandte Themen