Всплывающее окно в Android-соте - PullRequest
4 голосов
/ 09 июня 2011

Я хотел бы создать всплывающий / наложенный экран, например, «Места» (мне больше интересно, как я могу разместить этот экран, например, в правой / левой части экрана) в приложении карт Android (изображение ниже).Я могу создать упражнение и использовать тему диалога, это в основном решает мою проблему, но она помещается в центр экрана.У кого-нибудь есть идея, как я могу создать всплывающий / наложенный экран, например, места в приложении, не относящемся к карте, и поместить в верхнюю / правую часть экрана?Я думаю, что они сделали это с наложением карт.

Places in map

1 Ответ

4 голосов
/ 09 июня 2011

хорошо, вот что я сделал ... Я использовал FrameLayout для наложения LinearLayout, где я могу заполнить его View.Вот выдержка из моего кода:

XML:

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">

     <fragment class="com.some.location.to.fragment"
          android:id="@+id/fragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />

     <LinearLayout
          android:id="@+id/overlay_pane"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:visibility="gone"
          android:background="@color/transparent">

      </LinearLayout>

</FrameLayout>

Затем в моем коде для какой-то кнопки я бы просто добавил View (в вашем случае это может быть просто содержимое диалога)на оверлейную панель LinearLayout.

Пример Java:

ViewGroup container = findViewById(R.id.overlay_pane);
container.setVisibility(View.VISIBLE);
container.addView(some_view_you_inflated);

Но это завышенное представление будет иметь следующий фон: @ drawable / dialog_full_holo_light для хорошего эффекта границы, такого как стиль Сота.

Вы можете найти фон для рисования в вашем SDK в следующей папке

your_SDK_dir / platform / android-12 / data / res / drawable-hdpi / dialog_full_holo_light.9.png

Так что просто скопируйте это в свои рисунки.

Примечание: вы также можете использовать dialog_full_holo_dark или любой другой фон для того же эффекта.

Надеюсь, это поможет:) Дайте мне знать, если мне было неясно в какой-то момент

Примечание : вместо использования фрагмента вы можете просто использовать LinearLayout с match_parent как для layout_width, так и layout_height.И тогда вы заполнили бы этот LinearLayout интерфейсом "background" (в примере вопроса ... это будет карта)

...