Несколько представлений в одном действии (например, карта и список)

#android #android-layout

#Android #android-макет

Вопрос:

Последние несколько дней я немного возился с Android. Я столкнулся с проблемой при включении представлений в другие представления.

При работе с простыми представлениями это не проблема, но как только в представлении появляется какая-то необычная активность, работающая с ним, например, ListActivity или MapActivity (при использовании Google maps view)

Допустим, мне нужен список некоторого динамического вида и представление карт Google в одном представлении. Поскольку у них обоих есть определенное действие, связанное с ним, как мне это создать?

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:orientation="vertical" android:layout_width="fill_parent" android:id="@ id/linearLayout1" android:weightSum="1">
    <include android:id="@ id/include1" layout="@layout/list" android:layout_height="wrap_content"  android:layout_width="match_parent"></include>
    <include android:id="@ id/include2" layout="@layout/map" android:layout_width="match_parent" android:layout_height="wrap_content"></include>
</LinearLayout>
  

Должен ли я вместо этого использовать эту надувную штуковину?

Я искал решение этой проблемы, но не нашел ни одного. Либо мой Google fu отсутствует, либо я смотрю на это неправильно.

При написании этого и чтении связанных с этим вопросов здесь, на SO, я, возможно, нашел решение. Поскольку ListActivity и MapActivity — это просто расширенные действия, вместо того, чтобы использовать ListActivity и MapActivity, предоставляемые Android SDK, я должен просто использовать обычное действие и сам внедрять материал или, если возможно, повторно использовать их действия в моей собственной деятельности?

Кто-нибудь может это подтвердить? 🙂

Заранее спасибо 🙂

Комментарии:

1. Вы имеете в виду несколько представлений в одной группе просмотра?

2. нет, я имею в виду включение представлений, которые обычно поставляются в комплекте с действием, в одно представление.

Ответ №1:

Просмотры карт не всегда находятся внутри MapActivities, а просмотры списков не всегда находятся внутри ListActivities. Эти действия существуют как отправные точки для других действий, которые вращаются вокруг одного типа представления.

Чтобы ответить на ваш вопрос: если вам нужно действие, содержащее как ListView, так и MapView, вы можете просто добавить их в корневую группу представлений действия. Затем просто реализуйте необходимые методы, чтобы заставить MapView и ListView работать должным образом.

Я не уверен, что вы имеете в виду, говоря о наличии нескольких типов представлений в одном представлении. Обычно люди говорят о добавлении представлений для просмотра групп, например:

 <LinearLayout ....>
    <Button ..../>
    <ImageView ..../>
</LinearLayout>
  

В этом случае у вас есть LinearLayout viewgroup, которая содержит 2 представления a Button и a ImageView . В Android не имеет смысла говорить о ImageView содержащем другое представление.

Это наводит меня на мысль, что заголовок вашего вопроса действительно должен быть:

Несколько типов представлений в одном действии (например, карта и список)

Комментарии:

1. Да, вы правы в названии. Ваш ответ почти такой, какой я понял, прочитав еще немного об этом. Спасибо за подтверждение! 🙂