Come faccio Visualizzazioni riempire l'intera larghezza del genitore nella mia app Android?

StackOverflow https://stackoverflow.com/questions/2405614

  •  18-09-2019
  •  | 
  •  

Domanda

ho il seguente schema definito per una delle mie attività:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText>
    </TableRow>
    <TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <Button android:id="@+id/Tile" android:text="Tile"></Button>
    </TableRow>
</TableLayout>

Il layout rende quasi correttamente, l'unico problema è che la mia casella di testo e il mio pulsante non stanno occupando l'intera larghezza delle rispettive righe.

Ho provato a specificare fill_parent per le proprietà di larghezza di layout, ma senza alcun risultato, hanno ancora occupare solo circa la metà dello schermo.

Documentazione generale per Android finora è stato grande, ma ci sono alcuni scenari come questo in cui ho colpito un muro invisibile! Grazie per tutto l'aiuto!

È stato utile?

Soluzione

Provare a utilizzare android:stretchColumns="0" (quando si definisce la TableLayout) o che cosa mai è l'indice della colonna che si vorrebbe allungare.

Per ulteriori informazioni - http://developer.android.com/ guida / tutorial / views / ciao-tablelayout.html

Altri suggerimenti

Usa android:layout_width="match_parent" nelle viste TableRow.

Ora avete diverse possibilità nel TableLayout seting il parametro android:stretchColumns a:

viste Value "*" avranno stessa larghezza e riempirà la riga che occupa lo stesso spazio

Value "0" or other integer -> Prima o elemento corrispondente con il numero intero in una fila riempirà la riga. L'altra vista avrà larghezza in uno stesso modo di wrap_content

Esempio con TableLayout di 3 TableRow con 2 visite ogni:

Senza android:stretchColumns impostazione:

[|TextView|EditText|          ]
[|TextView|EditText|          ]
[|TextView|EditText|          ]

Android: stretchColumns = "*"

[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]

Android: stretchColumns = "0"

[|    TextView      |EditText|]
[|    TextView      |EditText|]
[|    TextView      |EditText|]

Android: stretchColumns = "1"

[|TextView|      EditText    |]
[|TextView|      EditText    |]
[|TextView|      EditText    |]

Prova questo nella definizione del vostro TableRow:

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top