Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: Problema Layout com ListView dinâmico, layout com scrollview e botões fixos no rodapé.

Para quem acessar o tópico com a mesma dúvida, ficou da seguinte maneira:


<?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="fill_parent"
android:background="@color/dp_blue"
android:orientation="vertical" 
android:paddingTop="15dip">
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
       
       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/dp_blue"
android:orientation="vertical" >

  <!-- Código Pedido -->
  
  <TextView
    android:id="@+id/txtCodPedido"
  android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp"
      android:text="@string/codigoPedido"
      android:textAppearance="?android:attr/textAppearanceMedium"/>
       
<EditText
android:id="@+id/edtCodPedido"
    android:layout_width="170dp"
    android:layout_height="wrap_content"
    android:inputType="number">
</EditText>
  
  <!-- Cliente -->
  
  <TextView
    android:id="@+id/txtCliente"
  android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp"
      android:text="@string/clientePed"
      android:textAppearance="?android:attr/textAppearanceMedium">
      <requestFocus />
  </TextView>
  
  <Button
      android:id="@+id/btnListaCliente"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/clienteList"/>
<!-- Data Pedido -->
<TextView
    android:id="@+id/txtDataPedido"
  android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp"
      android:text="@string/dataPed"
      android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
    android:id="@+id/edtDataPedido"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="date"/>
<!-- Total Pedido -->
<TextView
    android:id="@+id/txtTotalPedido"
  android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp"
      android:text="@string/totalPedido"
      android:textAppearance="?android:attr/textAppearanceMedium"/>
<EditText
android:id="@+id/edtTotalPedido"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"/>
   
<!-- Itens -->
<TableRow
       android:id="@+id/tblRowItemAddItem"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginTop="10dp"
       android:gravity="center">
<TextView
      android:id="@+id/txtItens"
    android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="5dp"
       android:text="@string/itensPed"
       android:textAppearance="?android:attr/textAppearanceMedium"/>
<Button
       android:id="@+id/btnAdicionarItem"
       android:layout_width="50dp"
       android:layout_height="wrap_content"
       android:text="@string/addItem"
       android:textColor="@color/dp_green"
       android:textSize="20dp"/>
</TableRow>
</LinearLayout>
</ScrollView>
    <View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>
    <ListView
android:id="@+id/listItens"
android:layout_width="match_parent"
android:layout_height="65dp">
</ListView>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:background="@color/dp_blue"
   android:orientation="horizontal">
<Button
      android:id="@+id/btnSalvar"
      android:layout_width="160dp"
      android:layout_height="wrap_content"
      android:text="@string/btnSalvar"/>
     
  <Button
      android:id="@+id/btnCancelar"
      android:layout_width="160dp"
      android:layout_height="wrap_content"
      android:text="@string/btnCancelar"/>
     
</LinearLayout>

</LinearLayout>

Em quinta-feira, 6 de setembro de 2012 18h25min23s UTC-3, Guilherme Bernardi escreveu:
Pessoal, estou tentando montar o seguinte layout:

O listview abaixo do botão de itens é carregado dinâmicamente pelo getView do adapter.

Já os botões Salvar e Cancelar eu gostaria que ficassem como os botões de quando você adiciona um Novo Contato, fixos no rodapé independentemente do scroll.
Mas não estou conseguindo, eu li algumas orientações em foruns para colocar um layout Linear com orientação horizontal por fora e um outro dentro do horizontal com orientação vertical para os componentes, mas não deu certo.
Outra coisa geralmente os botões estouram o tamanho então eles não aparecerem, só que se eu colocar um scrollview por fora do layout principal também dá conflito com o listview.

Teria alguma maneira de montar este layout ou eu teria de trocar para outro tipo de layout? Ou o problema está no meu inflate do listview dentro do getView?

Se alguém puder me ajudar eu ficarei grato, segue código do layout + getView:

<?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:background="@color/dp_blue"

android:orientation="vertical" 

android:paddingTop="15dip">


  <!-- Código Pedido -->

  

  <TextView

    android:id="@+id/txtCodPedido"

  android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_marginLeft="5dp"

      android:text="@string/codigoPedido"

      android:textAppearance="?android:attr/textAppearanceMedium"/>

       

<EditText

android:id="@+id/edtCodPedido"

    android:layout_width="170dp"

    android:layout_height="wrap_content"

    android:inputType="number">

</EditText>

  

  <!-- Cliente -->

  

  <TextView

    android:id="@+id/txtCliente"

  android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_marginLeft="5dp"

      android:text="@string/clientePed"

      android:textAppearance="?android:attr/textAppearanceMedium">

      <requestFocus />

  </TextView>

  

  <Button

      android:id="@+id/btnListaCliente"

      android:layout_width="match_parent"

      android:layout_height="wrap_content"

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

<!-- Data Pedido -->

<TextView

    android:id="@+id/txtDataPedido"

  android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_marginLeft="5dp"

      android:text="@string/dataPed"

      android:textAppearance="?android:attr/textAppearanceMedium"/>

<EditText

    android:id="@+id/edtDataPedido"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:ems="10"

    android:inputType="date"/>

<!-- Total Pedido -->

<TextView

    android:id="@+id/txtTotalPedido"

  android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_marginLeft="5dp"

      android:text="@string/totalPedido"

      android:textAppearance="?android:attr/textAppearanceMedium"/>

<EditText

android:id="@+id/edtTotalPedido"

    android:layout_width="140dp"

    android:layout_height="wrap_content"

    android:inputType="numberDecimal"/>

   

<!-- Itens -->

<TableRow

       android:id="@+id/tblRowItemAddItem"

       android:layout_width="match_parent"

       android:layout_height="wrap_content"

       android:layout_marginTop="10dp"

       android:gravity="center">

<TextView

      android:id="@+id/txtItens"

    android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_marginLeft="5dp"

       android:text="@string/itensPed"

       android:textAppearance="?android:attr/textAppearanceMedium"/>

<Button

       android:id="@+id/btnAdicionarItem"

       android:layout_width="50dp"

       android:layout_height="wrap_content"

       android:text="@string/addItem"

       android:textColor="@color/dp_green"

       android:textSize="20dp"/>

</TableRow>

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/dp_blue"

android:orientation="horizontal" >

<ListView

    android:id="@+id/listItens"

    android:layout_width="match_parent"

    android:layout_height="65dp">

</ListView>

</LinearLayout>

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

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

   android:background="@color/dp_blue"

   android:orientation="horizontal" 

   android:paddingTop="15dip">

<Button

      android:id="@+id/btnSalvar"

      android:layout_width="160dp"

      android:layout_height="wrap_content"

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

     

  <Button

      android:id="@+id/btnCancelar"

      android:layout_width="160dp"

      android:layout_height="wrap_content"

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

     

</LinearLayout>


</LinearLayout>

GetView:

public View getView(int position, View convertView, ViewGroup parent) {

View v;

PedidoItem pedItem = pedItens.get(position);

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

v = inflater.inflate(R.layout.listaitens, null);

        

TextView item = (TextView) v.findViewById(R.id.txtItens);

item.setText(pedItem.get_Item() + " Produto: " + pedItem.get_Produto() + " Valor: " + pedItem.get_Total());

return v;

}


Obrigado desde já.


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário