Autore Topic: Custom dialog  (Letto 425 volte)

Offline wlf

  • Utente normale
  • ***
  • Post: 367
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Custom dialog
« il: 12 Gennaio 2015, 15:49:29 CET »
0
Buongiorno ragazzi, ho creato un layout personalizzato per una dialog, ho delle difficoltà però a fare in modo che i campi di EditText riempano il LinearLayout in cui sono inseriti:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:weightSum="3" >

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:layout_weight="1"
       android:orientation="horizontal" >

        <Button
           android:id="@+id/buttonNew"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:layout_gravity="right"
           android:text="New user" />
    </LinearLayout>

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="right"
       android:layout_weight="1"
       android:orientation="horizontal" >

        <EditText
           android:id="@+id/editTextEmail"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:hint="Email to recover"
           android:inputType="textEmailAddress" >
        </EditText>

        <Button
           android:id="@+id/buttonRecover"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:text="Recover" />
    </LinearLayout>

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="right"
       android:layout_weight="1"
       android:orientation="horizontal" >

        <EditText
           android:id="@+id/editTextCode"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:hint="Recover code" />

        <Button
           android:id="@+id/buttonInsert"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:text="Verify" />
    </LinearLayout>

</LinearLayout>

Con wrap_content mi dimensiona l'EditText la lunghezza dell'hint, se uso match_parent mi fa sparire il bottone, se utilizzo fill_parent non mi dimensiona comunque i campi alla lunghezza disponibile. :(
Non posso dargli una lunghezza fissa in dp perché a seconda dello schermo avrei delle proporzioni diverse. Sarebbe possibile fare in modo che la larghezza dell'EditText sia a riempimento della dialog (spazio totale - occupazione bottone)?

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Custom dialog
« Risposta #1 il: 13 Gennaio 2015, 10:44:37 CET »
+1
Prova a definire android:layout_weight="1" per i TextView ed android:layout_weight="0" per i button.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline wlf

  • Utente normale
  • ***
  • Post: 367
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Custom dialog
« Risposta #2 il: 13 Gennaio 2015, 14:57:54 CET »
0
Prova a definire android:layout_weight="1" per i TextView ed android:layout_weight="0" per i button.

Ho provato come hai suggerito ma sembra funzionare in parte; se il contenuto del campo EditText settato con il .settext() o con l'hint XML è uguale o superiore alle dimensioni massime del campo funziona altrimenti mi ritrovo con il campo EditText più corto. Editandolo si allarga solamente se non setto il SingleLine (che ottengo con il inputType):

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical" >

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:orientation="horizontal"
       android:paddingLeft="3dp"
       android:paddingRight="3dp" >

        <Button
           android:id="@+id/buttonNew"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:layout_gravity="right"
           android:text="New user" />
    </LinearLayout>

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="right"
       android:orientation="horizontal"
       android:paddingLeft="3dp"
       android:paddingRight="3dp" >

        <EditText
           android:id="@+id/editTextEmail"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:hint="Email to recover"
           android:inputType="textEmailAddress"
           android:singleLine="true" >
        </EditText>

        <Button
           android:id="@+id/buttonRecover"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:layout_weight="0"
           android:text="Recover" />
    </LinearLayout>

    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="right"
       android:orientation="horizontal"
       android:paddingLeft="3dp"
       android:paddingRight="3dp" >

        <EditText
           android:id="@+id/editTextCode"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:hint="Recover code"
           android:inputType="textEmailSubject" />

        <Button
           android:id="@+id/buttonInsert"
           android:layout_width="140dp"
           android:layout_height="wrap_content"
           android:layout_weight="0"
           android:text="Verify" />
    </LinearLayout>

</LinearLayout>

Ho provato pure con dei padding (right & left) per cercare casomai di agganciare l'EditText al bordo, ma anche questi non hanno sortito alcun effetto. :(
« Ultima modifica: 13 Gennaio 2015, 14:59:34 CET da wlf »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Custom dialog
« Risposta #3 il: 13 Gennaio 2015, 15:02:14 CET »
+1
Prova a mettere anche

Codice (XML): [Seleziona]
android:layout_width="match_parent"
per tutti i LinearLayout
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline wlf

  • Utente normale
  • ***
  • Post: 367
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:Custom dialog
« Risposta #4 il: 13 Gennaio 2015, 16:32:49 CET »
0
Prova a mettere anche "match_parent" per tutti i LinearLayout

Perfetto! ;)
Io avevo messo "wrap_content" perché pensavo che altrimenti avrebbe dimensionato la dialog con le stesse dimensioni della larghezza max dello schermo, ma invece con "match_parent" dimensiona la dialog rimanendo adeguatamente proporzionata rispetto alla larghezza massima del video. ;)

Per quanto riguarda i layout continuo a farci a pugni ... :(

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Custom dialog
« Risposta #5 il: 13 Gennaio 2015, 16:40:31 CET »
0
Ottimo.

Segna il topic come risolto, se non l'hai già fatto.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.