#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. Да, вы правы в названии. Ваш ответ почти такой, какой я понял, прочитав еще немного об этом. Спасибо за подтверждение! 🙂