2012-11-10 11 views
13

Quando si utilizza fill_parent, maxWidth non ha alcun effetto.maxWidth non funziona con fill_parent

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 
    <LinearLayout android:layout_width="fill_parent" 
        android:layout_height="match_parent" 
        android:orientation="vertical"> 
     <EditText android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:maxWidth="50dip"/> 
    </LinearLayout>  
</LinearLayout> 

risposta

23

L'attributo maxWidth non ha alcun effetto su una larghezza di match_parent (o lo sconsigliato fill_parent), sono mutuamente esclusive. Devi usare wrap_content.

anche qualsiasi layout che ha un solo bambino può probabilmente essere rimosso, per esempio, è possibile semplificare si layout corrente a:

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:maxWidth="50dip"/> 
+2

Grazie! Come riempire il mio EditText di tutta la larghezza dello schermo ma non di 500dip? Ad esempio alcuni schermi hanno una risoluzione <500. –

+11

Questo sembra sciocco ma funziona: aggiungi 'minWidth' e imposta sia" min "che" max "a' 500dp'. – Sam

+1

@ Sam - questo non sembra funzionare per me, il editText riempie ancora l'intero schermo tranne i margini. Potresti elaborare? – katzenhut

3

È possibile ottenere lo stesso effetto utilizzando diversi layout per schermi differenti. Supponiamo che tu voglia il tuo EditText per riempire la larghezza disponibile ma non più di 480 dpi. Difine i layout come segue:

layout/my_layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

layout w480dp/my_layout.xml: (scegliere voi larghezza massima come il qualificatore qui)

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="480dp" 
      android:layout_height="wrap_content"/> 
Problemi correlati