У меня есть listview, который является частью Activity. Я хочу, чтобы у пользователя был выбор для пакетного удаления элементов в списке, поэтому, когда он выбирает соответствующую опцию из меню, каждый элемент списка получает флажок рядом с ним. Когда пользователь нажимает любой флажок, панель кнопок должна скользить снизу (как в приложении gmail), а кнопка «Удалить» удаляет выбранные элементы, однако нажатие кнопки отмены на панели отменяет все отмеченные элементы.Нижняя панель кнопок перекрывает последний элемент Listview!
Это моя страница 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>
до сих пор, у меня все работает за исключением того, что, когда нижняя полоса становится видимой при выборе галочки, она перекрывает последний элемент списка. Все остальные элементы списка можно прокручивать, но вы не можете прокручивать последний элемент списка, поэтому пользователь не может выбрать этот элемент, если он намеревается. Вот screenshot of the overlap.
Я пробовал использовать параметр нижнего колонтитула listview, но добавляет его в конец списка, а не фиксирует его в нижней части экрана. Есть ли способ, который я мог бы «поднять» список достаточно, чтобы совпадение не произошло? BTW. Я уже пробовал добавлять нижний край к самому списку или LinearLayout, обертывая список прямо перед тем, как сделать панель кнопок видимой, но она вводит другие ошибки, такие как щелчок по одному флажку, который проверяет еще один флажок в списке.
Что произойдет, если вы замените RelativeLayout на LinearLayout, который имеет тот же вес, что и LinearLayout, содержащий ListView? – James