2015-11-12 8 views
6

Sto provando PercentRelativeLayout dalla libreria di supporto e the docs chiedimi semplicemente di specificare un'app: proprietà layout_widthPercent. Tuttavia, quando lo faccio, Android Studio mi avvisa in rosso dicendo che layout_width non è specificato.PercentRelativeLayout - layout_width avviso mancante

Oltre a sopprimere l'avviso, c'è un modo per aggirare questo?

Ad esempio:

<android.support.percent.PercentRelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/expiry_month_wrapper" 
      app:layout_widthPercent="25%" 
      android:layout_height="wrap_content"> 
      <EditText 
       android:id="@+id/expiry_month_editText" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:maxLength="2" 
       android:hint="@string/month" 
       android:focusable="true" 
       android:inputType="number"/> 
     </android.support.design.widget.TextInputLayout> 

     <!-- more TextInputLayout fields --> 

    </android.support.percent.PercentRelativeLayout> 

avvertimento dato sul TextInputLayout.

+0

Ho lo stesso problema. Risulta qualcosa di brutto o solo un avvertimento? – pratz9999

risposta

1

Mi rendo conto che è una vecchia questione - ma avendo appena incontrato questo problema che voglio fare in modo che sia disponibile per tutti :)

Aggiunta di un visualizzare il tuo PercentRelativeLayout genererà un errore visivo nell'editor di testo. Potrebbe non riuscire a eseguire il rendering sullo schermo. Vai avanti ed esegui il tuo emulatore e dovrebbe risolvere il problema di visibilità.

Per risolvere l'errore è sufficiente aggiungere android:layout_width="0dp" Fintanto che il tuo widthPercent e heightPercent sono impostati in modo appropriato non avrai un problema.

Ecco il mio esempio di codice testato

  android:text="Label label" 
      android:id="@+id/btn1" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_alignParentTop="true" 
      app:layout_widthPercent="50%" 
      app:layout_heightPercent="30%" 
      android:textSize="17sp"/> 

     <Button 
      android:text="Other other other" 
      android:id="@+id/btn2" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_toRightOf="@id/btn1" 
      app:layout_widthPercent="50%" 
      app:layout_heightPercent="30%" 
      android:textSize="17sp"/> 
8

Per convenzione, è necessario includere sia layout_width sia layout_height anche se sono ignorati dal punto di vista funzionale dall'app di PercentRelativeLayout: layout_widthPercent e app: layout_aspectRatio, rispettivamente.

Nel tuo caso, utilizzando esclusivamente app: layout_widthPercent, imposta Android: layout_width su un numero qualsiasi di pixel indipendenti dalla densità per eliminare l'avviso.

Per esempio: Android: layout_width = "0DP"

+3

Ma attenzione ... sappiamo che "wrap_content", ad esempio, ha un significato molto specifico con PercentRelativeLayout ... i campi non vengono ignorati completamente. – lilbyrdie