Monteiro João Bosco - Google Android: crie aplicações para celulares e tablets стр 18.

Шрифт
Фон

elementos-filhos não podem especificar o atributo layout_width, que por padrão já possuem o valor MATCH_PARENT. No entanto, o atributo layout_height pode

ser definido (o valor padrão é WRAP_CONTENT), exceto quando o elemento-filho for uma TableRow que terá sempre o valor WRAP_CONTENT.

Isto por um lado é bom, pois evita que tenhamos que especificar inúme-

ros atributos de layout, mas por outro, pode limitar as situações de uso do

72

Casa do Código

Capítulo 3. Domine os principais elementos de Interface Gráfica

TableLayout por não termos este ajuste fino. Esta característica nos levou a incluir um LinearLayout para incluirmos um título centralizado na tela. Ainda

utilizamos uma ScrollView para prover a rolagem da tela quando necessário.

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<TableLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:stretchColumns="0,1,2" >

<LinearLayout

android:background="#015488"

android:orientation="vertical" >

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="@string/nova_viagem"

android:textAppearance=

"?android:attr/textAppearanceLarge"

android:textStyle="bold" />

</LinearLayout>

</ScrollView>

O TableLayout possui dois atributos muito úteis para ajustar o tamanho das

colunas. Um deles é o stretchColumns (linha 10), que permite que as colunas indicadas ocupem todo o espaço disponível entre os seus elementos-filhos e o próprio TableLayout. Como a configuração de largura do nosso layout é MATCH_PARENT,

então as colunas devem expandir o seu tamanho de modo a ocupar toda a tela.

O outro atributo é o shrinkColumns que indica que determinadas colunas

podem ter seu tamanho reduzido quando requisitado pelo TableLayout. O va-

lor desses atributos é o índice (iniciando em 0) referente às colunas desejadas. O

TableLayout adiciona as linhas e os elementos de layout na sequência em que apa-73

3.3. TableLayout

Casa do Código

recem no XML, incrementando automaticamente o índice da coluna.

Se necessário, é possível informar a qual coluna determinado elemento pertence utilizando o atributo layout_column. Porém, a ordem sequencial deve ser respei-tada, ou seja, não é possível incluir um elemento na coluna de índice 1 e depois um elemento na coluna de índice 0, nem via XML, nem programaticamente. Quando

um número da sequência é omitido, o TableLayout assume que aquela é uma

coluna vazia. Portanto, fazer uso do layout_column faz mais sentido quando desejamos incluir colunas vazias para criar espaço entre os elementos e possivelmente incluí-las no shrinkColumns.

Agora, basta colocarmos os elementos que irão compor o layout e cada uma das

colunas. Nas duas primeiras linhas da tabela, teremos a caixa de texto para que seja informado o destino e logo acima dela um TextView para o label do campo:

<TextView android:text="@string/destino" />

<EditText

android:id="@+id/destino"

android:inputType="text" >

</EditText>

Em seguida, mais um TextView para o label do Tipo da Viagem e um

RadioGroup que vai conter os RadioButton para fazer as opções como Lazer e

Negócios.

<TextView android:text="@string/tipo_da_viagem" />

<RadioGroup

android:id="@+id/tipoViagem"

android:orientation="horizontal" >

<RadioButton

android:id="@+id/lazer"

android:checked="true"

android:text="@string/lazer" />

<RadioButton

android:id="@+id/negocios"

android:layout_marginLeft="30dp"

android:text="@string/negocios" />

</RadioGroup>

74

Casa do Código

Capítulo 3. Domine os principais elementos de Interface Gráfica

A seguir, temos mais uma linha que irá conter os labels para dois campos: Data de Chegada e Data de Saída. Como não queremos que cada elemento fique em

uma linha e sim que os dois elementos ocupem a mesma, vamos envolvê-los num TableRow, onde cada um ocupará uma coluna:

<TableRow>

<TextView

android:layout_gravity="center"

android:text="@string/data_da_chegada" />

<TextView

android:layout_gravity="center"

android:text="@string/data_da_saida" />

</TableRow>

Logo abaixo do texto Data de Chegada e Data de Saída temos botões que

serão utilizados para abrir caixas de diálogo específicas para seleção de datas, o DatePickerDialog. Também utilizaremos este widget na tela de registro de

um novo gasto. Veremos como utilizá-lo na seção 3.4. Posteriormente, revisite a ViagemActivity para implementar esses dois itens.

<TableRow>

<Button

android:id="@+id/dataChegada"

android:onClick="selecionarData"

android:text="@string/selecione" />

<Button

android:id="@+id/dataSaida"

android:onClick="selecionarData"

android:text="@string/selecione" />

</TableRow>

Por fim, montamos os campos para o valor do orçamento e quantidade de pes-

soas, além de um botão para confirmar o cadastro da viagem:

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке