У меня есть список, который является частью Activity. Я хочу, чтобы у пользователя был выбор для пакетного удаления элементов в списке, поэтому, когда он выбирает соответствующий параметр в меню, каждый элемент списка получает флажок рядом с ним. Когда пользователь нажимает любой флажок, панель кнопок должна сдвигаться снизу вверх (как в приложении gmail), и нажатие кнопки удаления удаляет выбранные элементы, однако нажатие кнопки отмены на панели снимает отметки со всех отмеченных элементов.
Это моя страница layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id="@+id/list_area"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ListView
android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawSelectorOnTop="false"
android:layout_weight="1"
/>
<TextView
android:id="@+id/empty_list_message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/msg_for_emptyschd"
android:layout_margin="14dip"
android:layout_weight="1"
/>
</LinearLayout>
<RelativeLayout
android:id="@+id/bottom_action_bar"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/schedule_bottom_actionbar_border"
android:layout_marginBottom="2dip"
android:layout_gravity="bottom"
android:visibility="gone"
>
<Button
android:id="@+id/delete_selecteditems_button"
android:text="Deleted Selected"
android:layout_width="140dip"
android:layout_height="40dip"
android:layout_alignParentLeft="true"
android:layout_marginLeft="3dip"
android:layout_marginTop="3dip"
/>
<Button
android:id="@+id/cancel_button"
android:text="Cancel"
android:layout_width="140dip"
android:layout_height="40dip"
android:layout_alignParentRight="true"
android:layout_marginRight="3dip"
android:layout_marginTop="3dip"
/>
</RelativeLayout>
</FrameLayout>
</LinearLayout>
пока у меня все работает, за исключением того, что когда нижняя полоса становится видимой после выбора флажка, она перекрывает последний элемент списка. Все остальные элементы списка можно прокручивать вверх, но вы не можете прокручивать вверх самый последний элемент списка, поэтому пользователь не может выбрать этот элемент, если он намеревается. Вот снимок экрана перекрытия.
Я пробовал использовать опцию нижнего колонтитула listview, но она добавляет полосу в конец списка, а не фиксирует ее внизу экрана. Есть ли способ «поднять» список настолько, чтобы перекрытия не происходило? Кстати, я уже пробовал добавить нижнее поле к самому списку, или LinearLayout, обертывающий список прямо перед тем, как сделать панель кнопок видимой, но он вводит другие ошибки, такие как нажатие одного флажка проверяет другой флажок в списке.