/ / Precisa de ajuda para adicionar um rodapé a uma ListView Android de forma que não sobreponha as entradas da ListView - java, android, xml

Precisa de ajuda para adicionar um rodapé a um Android ListView de modo que ele não se sobreponha às entradas do ListView - java, android, xml

O código abaixo é para um ListView com rodapé,o problema que estou enfrentando é que as entradas inferiores no ListView estão sendo sobrepostas pelo rodapé. Então, você poderia sugerir qualquer solução (porque eu tentei muito e em cada situação estou obtendo o mesmo resultado de sobreposição) ou alguma outra maneira de fazer isso. Desde já, obrigado. Eu também postei o código do rodapé para o caso.

<LinearLayout android:id="@+id/homeParentLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">


<ListView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/listV_main"
android:listSelector="@android:color/transparent"/>

<include android:id="@+id/footer" android:layout_height="wrap_content"
layout="@layout/mymenu" android:layout_width="fill_parent"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true">
</include>

</RelativeLayout>
</LinearLayout>

Código para mymenu.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_gravity="bottom">

<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:orientation="vertical">

<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=" "
android:gravity="center"/>
<ImageView
android:id="@+id/imgSetting"
android:src="/images/@drawable/settings_gear_icon_256"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_marginLeft="10sp"
android:clickable="true"/>

<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=" "
android:gravity="center"/>


<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=" "
android:gravity="center"/>
<ImageView
android:id="@+id/imgLogin"
android:layout_width="60dip"
android:src="/images/@drawable/login_lock_256"
android:clickable="true"
android:layout_height="60dip" />

<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=" "
android:gravity="center"/>


<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=" "
android:gravity="center"/>
</TableRow>
</TableLayout>
</LinearLayout>

Respostas:

2 para resposta № 1

Use um layout relativo como este: Declare o layout relativo e, em seguida, declare o rodapé como o primeiro elemento. Essas propriedades são as importantes para o rodapé:

android:layout_alignParentBottom="true"
android:id="@+id/footer_id"

Em seguida, declare seu listView com esta propriedade:

android:layout_above="@id/footer_id"

E isso deveria bastar.


0 para resposta № 2

Embora um RelativeLayout geralmente oferece mais flexibilidade para o design do layout, no caso de um layout bastante simples como este, você pode usar pesos para distribuir o estado da tela de maneira semelhante, usando um LinearLayout.

Observe que as mudanças mais notáveis ​​abaixo estão no ListView declaração. A altura de "0 dp" e o peso de "1" farão o ListView ocupe o máximo de espaço (verticalmente) possível, sem empurrar o rodapé para fora. Efetivamente, isso irá alinhar o rodapé por baixo.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/homeParentLayout"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ListView android:layout_height="0dp" android:layout_weight="1"
android:layout_width="fill_parent" android:id="@+id/listV_main"
android:listSelector="@android:color/transparent" />

<include android:id="@+id/footer" android:layout_height="wrap_content"
layout="@layout/mymenu" android:layout_width="fill_parent"
android:layout_gravity="center_horizontal" />

</LinearLayout>

Eu também tomei a liberdade de remover o que parecia ser algumas tags / atributos remanescentes de brincar com um RelativeLayout.