Aggiungo un pulsante in modo programmatico alla mia vista Android esistente, quando l'utente tocca un altro pulsante. Funziona in termini di funzionalità, ma alcune informazioni sullo stile sembrano essere ignorate.Android - L'aggiunta di una vista ignora programmaticamente alcuni attributi di stile
Sto aggiungendo il pulsante con un layout separato contenente solo il pulsante, con il valore di stile pre-riempito.
<Button xmlns:android="http://schemas.android.com/apk/res/android" style="@style/FileStorageDeleteButton"></Button>
Utilizzando getLayoutInflater
, io sono quindi in grado di aggiungere questo pulsante per il layout.
buttonDelete = (Button) getLayoutInflater().inflate(R.layout.pete_button_filedelete, null);
LinearLayout layout = (LinearLayout)findViewById(R.id.layoutFileStorage);
layout.addView(buttonDelete, 1);
Ho un file XML nella directory valori che imposta il colore, ecc del testo per @style/FileStorageDeleteButton
, la maggior parte dei quali vengono utilizzati dal pulsante quando è aggiunto . Ma per qualche motivo i quattro attributi di margine e layout_below
vengono ignorati.
Non vedo errori nel LogCat quando viene visualizzato questo pulsante, è come se lo stile semplicemente non fosse applicato. Se includo il pulsante manualmente nell'XML per quel layout, utilizza correttamente tutti gli stili.
Qualsiasi aiuto molto apprezzato.
Grazie David - il tuo post mi ha inviato nella giusta direzione per trovare che posso p Assumere più variabili in Gonfiamento. Ora usando 'buttonDelete = (Button) getLayoutInflater(). Gonfia (R.layout.pete_button_filedelete, layout, false);', sebbene 'layout_below' sia ancora ignorato. Posso aggirare questo, ma mi chiedo solo perché quello non funziona ancora? Grazie ancora! Se avessi la reputazione di revocarti, vorrei :) –
'layout_below' è usato solo per un' RelativeLayout'. Il tuo 'LinearLayout' ignora questo attributo. In un 'LinearLayout' puoi controllare sopra/sotto usando la posizione della vista all'interno del layout. –