С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 142
#1

Программное добавление View - Программирование Android

04.10.2016, 17:25. Просмотров 202. Ответов 2
Метки нет (Все метки)

Не могу разобраться:
нужно программно прилепить н-ное количество вьюх. Делаю так:
Java
1
2
3
4
5
6
7
Dialog dialog = new Dialog(pd.getContext());
dialog.setContentView(R.layout.content_order_review);
LinearLayout parrent = (LinearLayout) dialog.findViewById(R.id.dlg_order_content_ll);
...
for (int i = 0; i < taxiOrder.getRouteList().size(); i++) {
                        parrent.addView(getLayoutInflater().inflate(R.layout.content_order_route_point, null));
                    }
XML-ка:
Кликните здесь для просмотра всего текста

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/driver_gray2"
    android:padding="5dp"
    android:layout_margin="15dp">
    <TextView
        android:id="@+id/item_routepoint_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="м. Речной вокзал"
        android:layout_centerVertical="true"/>
    <ImageView
        android:id="@+id/item_routepoint_done"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/check_yes"
        android:padding="3dp"
        android:background="@color/background_white"/>
    <TextView
        android:id="@+id/item_routepoint_time1"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:layout_toLeftOf="@+id/item_routepoint_done"
        android:background="@color/background_white"
        android:gravity="center"
        android:layout_marginRight="5dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="07:15"/>
    <TextView
        android:id="@+id/item_routepoint_time2"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:layout_toLeftOf="@id/item_routepoint_time1"
        android:background="@color/background_white"
        android:gravity="center"
        android:layout_marginRight="5dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="07:05"/>
</RelativeLayout>

Все добавляется всё хорошо, но добавленные вьюхи слеплены между собой, как будто параметр android:layout_margin="15dp" из ХМЛ не учитывается...
Как так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 17:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программное добавление View (Программирование Android):

Программное добавление View - Программирование Android
Всем привет! У меня в роли setContentView выступает класс Draw2D, в котором я собираюсь рисовать кое-какую графику. Графика рисуется...

Программное добавление View - Программирование Android
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других ресурсах, но решения своей проблемы все же не нашел. суть...

Программное добавление View элементов в Fragment - Программирование Android
Здравствуйте. Проблема такая: в приложении есть 2 вкладки. Переключение между ними реализуются через ViewPager и FragmentStatePagerAdapter....

Программное добавление элементов - Программирование Android
Уважаемы подскажите такую ситуацию, не могу немного понять...Как на Relative разметке программно добавлять элементы, чтобы их можно было...

Добавление элемента - наследника View - Программирование Android
Здравствуйте. Пишу для Android простенькую игрушку. Для нее мне понадобилось написать класс, рисующий круг - наследник View. На экране...

Добавление View (кнопки) в PreferenceScreen - Программирование Android
Здравствуйте! не получается добавить View (кнопку) в общую структуру PreferenceScreen, через this.addContentView добавляется, но...

2
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
04.10.2016, 17:37 #2
Java
1
2
3
4
        final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        final int m = pd.getContext().getResources().getDimensionPixelSize(R.dimen.dialog_margin);
        lp.setMargins(m, m, m, m);
        parrent.addView(getLayoutInflater().inflate(R.layout.content_order_route_point, null), lp);
и в файл dimen.xml добавить марджин
XML
1
    <dimen name="dialog_margin">15dp</dimen>
Добавлено через 51 секунду
когда инфлейтится вьюшка ее layout_ параметры отбрасываются, грубо говоря
1
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 142
04.10.2016, 19:06  [ТС] #3
Цитата Сообщение от Паблито Посмотреть сообщение
когда инфлейтится вьюшка ее layout_ параметры отбрасываются, грубо говоря
теперь буду знать. Первый раз программно рисую
И снова спасибо - помогло!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2016, 19:06
Привет! Вот еще темы с ответами:

Программное добавление строкового ресурса - Программирование Android
Здравствуйте! Я храню данные для ListView в XML-файле строковых ресурсов: &lt;string-array name=&quot;cat_names&quot;&gt; &lt;item&gt;Рыжик&lt;/item&gt; ...

Программное добавление рамки Layout - Программирование Android
Добавляю рамку к Layout с помощью XML файла: &lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt; &lt;stroke...

Добавление View в FrameLayout: ошибка в приложении - Программирование Android
Доброго времени суток! Хочу вот этот класс, который унаследован от View, добавить в уже созданный FrameLayout. Вот так не работает: ...

Программное создание GridLayout и добавление в него объектов - Программирование Android
Дисклеймер: Всем доброго дня! Я - новичок в написании программ под Android. Имеется небольшой опыт С++/С#, но речь не об этом. Я...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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