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 № 1Use 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
.