Android / layout: как создать макет заголовка-контента - PullRequest
10 голосов
/ 05 января 2010

Как мне создать следующий макет в Android?

Я хочу "заголовок", то есть заголовок, который всегда остается неизменным. Единственное, что должно измениться - это область под заголовком.

Думайте об этом как о веб-странице, где область контента - это то, где все это происходит =)

+--------------------+
| H E A D E R        |
+--------------------+
|                    |
|                    |
|                    |
|  C O N T E N T     |
|                    |
|                    |
|                    |
+--------------------+

Конечно, достаточно просто создать LinearLayot, добавить вид сверху, а затем еще один вид под ним - тада! Но что мне нужно, так это то, как вы «настраиваете» или разрабатываете проект, поэтому легко изменить то, что находится в Контенте.

То, что я действительно хотел бы, это иметь возможность "провести" (см. здесь ) области, а затем просто "добавить" новый вид / объект в Content- области, но оставьте тот же заголовок.

Что мне действительно не хватает, так это обширная библиотека примеров лайтойтов ...

привет

Ответы [ 2 ]

23 голосов
/ 05 января 2010

Вы можете создать файл макета для вашего заголовка. В верхней части макета для каждого действия с содержимым включите файл макета, например:

<include android:id="@+id/header"
         layout="@layout/my_header"
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"/>

Как именно вы получите заголовок, чтобы остаться в верхней части макета контента, будет зависеть от остальной части вашего макета. Вы можете использовать LinearLayout с direction = "vertical" или относительный макет с align_parentTop = "true" в вашем операторе включения.

Эта документация для Android содержит краткое описание основных типов макетов.

2 голосов
/ 11 февраля 2010

Другое возможное решение - использовать ViewFlipper или ViewSwitcher в качестве раздела «Контент», где вы включаете различные типы контента, между которыми вы хотите переключаться, и просто указываете, какой вид вы хотите отображать (вы можете делать анимацию на флип / переключатель также). Недостатком является то, что ваш контент должен быть добавлен в основной макет, который каждое представление является дочерним по отношению к ViewFlipper / ViewSwitcher (можно использовать или слишком, чтобы сохранить макеты в отдельных XML-файлах).

Передача рендеринга коммутируемого контента другому виду деятельности не так проста. TabHost / TabWidget позволяет это делать, когда область содержимого хоста вкладок создается из другого действия. Вы можете использовать код Tab в качестве примера, если вам нужно выполнить его таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...