2015-02-27 20 views
7

Sono nuovo per Android Dev e sto riscontrando problemi nel tentativo di impostare l'altezza minima di it.gmariotti.cardslib.library.view.CardView a livello di programmazione. Creo una nuova istanza di CardView e imposto tutti gli elementi xml nel codice, ma non influisce sul cardView. Non gonfio il cardview da xml.Imposta altezza CardView programmaticamente

CardView catCard = new CardView(getActivity()); 

    catCard.setBackgroundColor(Color.green(0)); 

    catCard.setMinimumHeight(10); 
    catCard.setBottom(0); 
    catCard.setExpanded(false); 
+0

è la sua opinione aggiunto qualsiasi gerarchia o layout di visualizzazione? La dimensione di una vista dipende dal suo layout. Inoltre, solo per essere sicuro di aver capito la tua domanda, sei riuscito a impostare correttamente l'altezza quando si gonfia da XML, e vuoi sapere come farlo dal codice, o non hai impostato l'altezza su questa vista anche quando gonfiando da XML? – JHH

+0

Aggiungo il CardView al LinearLayout e funziona con tutti i dati rilevanti, ma i metodi usati sopra non influenzano affatto la carta. Non sono stato in grado di impostare l'altezza perché non sto gonfiando la vista da xml ma piuttosto creando una nuova scheda e aggiungendola al file xml che viene gonfiato. –

risposta

4

CardView estende FrameLayout in modo che sia possibile impostare LayoutParams. Prova qualcosa del genere:

CardView.LayoutParams layoutParams = (CardView.LayoutParams) 
      catCard.getLayoutParams(); 
    layoutParams.height = 10; 

, non dimenticare che è necessaria anche l'impostazione Larghezza. o creare nuove LayoutParams come questo (non testato):

CardView catCard = new CardView(getApplicationContext()); 
// sets width to wrap content and height to 10 dp -> 
catCard.setLayoutParams(new CardView.LayoutParams(
    CardView.LayoutParams.WRAP_CONTENT, 10)); 

catCard.setMinimumHeight(10); 
+0

Grazie per la risposta, ma ho già provato a utilizzarlo, ma ricevo un errore. Probabilmente perché ho solo impostato l'altezza. Proverà larghezza e altezza. Cosa intendi con "creare nuovi layoutParams"? –

+0

Ho modificato la mia risposta, spero che aiuti. Potresti voler provare prima a creare nuovi LayoutParam e quindi impostare l'altezza con il codice sopra CardView.LayoutParams layoutParams = (CardView.LayoutParams) catCard.getLayoutParams(); layoutParams.height = 10; –

4
myCardView.setLayoutParams(new RelativeLayout.LayoutParams(20, 20)); 

dipende che il vostro CardView è un bambino di cui il layout, in questo caso è in fase di layout relativa

Problemi correlati