Я просто искал ответ на этот вопрос, и это был один из первых результатов.Мне кажется, что все ответы, включая тот, который в настоящее время выбран в качестве «лучшего ответа», не касаются вопроса, о котором спрашивают.Проблема, о которой говорится, состоит в том, что существует два компонента Button
и ListView
, которые перекрывают друг друга, поскольку ListView занимает весь экран, а кнопка визуально перемещается над (перед) ListView (блокируя).просмотр / доступ к последнему элементу в ListView
)
Основываясь на ответах, которые я видел здесь и на других форумах, я наконец пришел к выводу о том, как решить эту проблему.
Первоначально у меня было:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF394952">
<ListView
android:id="@+id/game_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
style="@android:style/ButtonBar">
<Button
android:id="@+id/new_game"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game"
android:textColor="#FFFFFFFF"
android:background="@drawable/button_background" />
</LinearLayout>
</RelativeLayout>
Обратите внимание на использование RelativeLayout
в качестве корневого узла.
Это окончательная рабочая версия, в которой кнопка не перекрывает ListView
:
<?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="#FF394952">
<ListView
android:id="@+id/game_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_weight="1.0" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
style="@android:style/ButtonBar">
<Button
android:id="@+id/new_game"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game"
android:textColor="#FFFFFFFF"
android:background="@drawable/button_background" />
</LinearLayout>
</LinearLayout>
Есть только два различия.Во-первых, я переключился на использование LinearLayout
.Это поможет со следующим битом, который добавляет android:layout_weight
к моему ListView
Надеюсь, это поможет.