Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
#1

Ограничение InfoWindow - Программирование Android

24.01.2016, 13:09. Просмотров 446. Ответов 8
Метки нет (Все метки)

Здравствуйте, возникла очередная гадость, которую ни умом, ни гуглом никак понять не получается.
Есть разметка с картой и тулбаром:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
 
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
 
        <org.osmdroid.views.MapView
            android:id="@+id/map_e"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </LinearLayout>
 
    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar_e"
        android:layout_width="match_parent"
        app:theme="@style/Theme.AppCompat.Light.NoActionBar"
        android:layout_height="?android:actionBarSize"
        android:focusable="false" />
</FrameLayout>
И разметка окошка маркера, то есть тыкаем пипку на карте, открывается это окошко прямо на карте:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:alpha="0.75"
    android:background="@drawable/bonuspack_bubble"
    android:orientation="vertical">
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 
        <LinearLayout
            android:id="@+id/balloonLayuot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
        <include layout="@layout/marker_layout" />
        </LinearLayout>
    </ScrollView>
</LinearLayout>
Проблема в том, что при большом количестве инфы для одного маркера (бывает так, что маркер один, но значений несколько, например, несколько организаций в одном здании), эта инфа уезжает под тулбар и даже дальше немного.
layout_margin и layout_below не помогают, так как разметка маркера вставляется программно и, видимо, не сознает себя детищем чего-то большего. Вопрос такой: как ограничить размер информационного окна тулбаром сверху, чтобы оно упиралось и начало складываться в скролл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2016, 13:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ограничение InfoWindow (Программирование Android):

Ограничение длины текста - Программирование Android
Есть TextView, есть текст, который в этот TextView вписывается. Как сделать: - чтобы текст писался в одну строчку. - в случае, если...

Ограничение доступа к элементам UI - Программирование Android
Здравствуйте уважаемые android разработчики. Будьте так добры помочь ламеру в доработки приложения. Мне необходимо чтобы после выполнения...

Ограничение расхода трафика - Программирование Android
Подскажите, возможно ли ограничить потребление интернет-трафика (скорость передачи) в своём приложении?

Существует ли ограничение на количество ImageView? - Программирование Android
Мне надо чтоб на екране отрисовывалось следующее: Фон и на нем комбинация из 4 рисунков. У 4 рисунков естественно фон прозрачный. Я хотел...

Установить ограничение экрана на запуск приложения - Программирование Android
Необходимо разрешить запуск приложения только с конкретно заданным разрешением (допустим 480x800) и чтобы любое отличие запрещало запуск....

Ограничение количества символов после запятой в TextView - Программирование Android
Здравствуйте. Есть поле TextView После математических вычислений в него выводится ответ, но количество знаков после запятой не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
25.01.2016, 14:02 #2
мне кажется карта занимает всю доступное пространство на FrameLayout
а это значить что карта и под тулбаром
надо пробовать FrameLayout менять на CoordinatorLayout
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
26.01.2016, 00:00  [ТС] #3
Паблито, Да, карта занимает весь слой, тулбар прозрачный. CoordinatorLayout пробовал, всё также. Причем заезжает и за экран, это видно за тулбаром, но не всё, часть информации сворачивается в скролл. Самое простое в этом случае - layout_marginTop, однако игнорируется.
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
26.01.2016, 10:58 #4
можно при клике на маркер просто перемещать камеру так что бы маркер оказывался в центре экрана
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
26.01.2016, 11:02  [ТС] #5
Паблито, Сделано, маркер я ставлю даже не в центре, а где-то между центром и низом, но вот попалось два маркера, где инфы больше, и на маленьких устройствах уезжает...
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
27.01.2016, 15:08  [ТС] #6
Паблито, а можно как-нибудь слой привязать к другому слою, намеренно делать его дочерним элементом?
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
30.01.2016, 13:42  [ТС] #7
Самое интересное, если задать android:layout_width и android:layout_height фиксированными, то ничего не меняется, хотя в превью всё нормально.
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
12.02.2016, 16:04  [ТС] #8
Проверил, что у карты и у маркера один и тот же родитель, но если:
Java
1
2
3
4
5
6
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT
        );
        params.setMargins(0, 200, 0, 0);
        mView.setLayoutParams(params);
для карты работает, для маркера игнорируется...
ExFau$t
277 / 252 / 44
Регистрация: 08.05.2012
Сообщений: 1,363
13.02.2016, 23:00  [ТС] #9
Пролистал библиотеку карты, нашел метод открытия маркера, переопределил его с фиксированной высотой. Грубо, но вполне сносно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2016, 23:00
Привет! Вот еще темы с ответами:

Ограничение EditText на ввод максимальных int и float - Программирование Android
Есть диалог в котором можно ввести пару чисел в EditText'ах, из первого из них будет добываться int а из второго - float. Как ограничить в...

Подскажите, как сделать ограничение, чтобы поля проверялись на пустоту - Программирование Android
Подскажите, как сделать ограничение, чтобы поля проверялись на пустоту, и если поля не заполнены то выводилась ошибка? import...

Как организовать ограничение движения персонажа по некоторой площадке произвольной формы - Программирование Android
Как организовать ограничение движения персонажа по некоторой площадке произвольной формы. Например, как в денди версии игры Indiana Jones....

Google Maps 2. Ограничение на количество запросов к google - Программирование Android
Google накладывает ограничение на количество запросов в день к Google Maps (2500 в день на ключ). Скажите, как можно узнать, какое кол-во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.02.2016, 23:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru