Урок 18. Меняем layoutParams в рабочем приложении

Обсуждение уроков
brainail
Сообщения: 3
Зарегистрирован: 30 июл 2012, 00:11

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение brainail » 30 июл 2012, 00:20

Извините что задаю этот вопрос здесь, но уже надоело. Постоянно происходит сбой парсинга XML файла. Вот например в этом уроке, если я скопирую ваш XML, и запущу, то всё хорошо. Если допустим я добавлю в него background для первого Linear Layout, то слетает парсер. Ладно, я удаляю строчку установки background-а (т.е по сути вернулся к вашему XML файлу который запускался отлично), и у меня всё равно ошибка парсера, причём файл *.out.xml не удаляется сразу, а только возможно когда в Debug удалить процесс. И только потом (возможно) у меня опять запустится. Дело может в том что я установил запрещённый параметр произошёл сбой, и теперь даже если вернуть всё обратно, там что то сохраняется ещё, или что ...

Код: Выделить всё

[2012-07-29 22:53:34 - P0181_DynamicLayout3] Error in an XML file: aborting build.
И да спасибо за ваши уроки ;)

UPD: Ох, возможно это из-за того что я жму Run находясь фокусом при этом в XML файле... Либо стоит жать по чаще Refresh + Clean как только что-то меняется... Вообщем как нужно, если я правлю ручками где-то, стоит ли сделать после этого Refresh + Clean, или достаточно просто всегда запускать именно Activity находясь при этом фокусом на нём..
Последний раз редактировалось brainail 30 июл 2012, 00:41, всего редактировалось 1 раз.

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Finch » 30 июл 2012, 00:39

brainail писал(а):Извините что задаю этот вопрос здесь, но уже надоело. Постоянно происходит сбой парсинга XML файла. Вот например в этом уроке, если я скопирую ваш XML, и запущу, то всё хорошо. Если допустим я добавлю в него background для первого Linear Layout, то слетает парсер. Ладно, я удаляю строчку установки background-а (т.е по сути вернулся к вашему XML файлу который запускался отлично), и у меня всё равно ошибка парсера, причём файл *.out.xml не удаляется сразу, а только возможно когда в Debug удалить процесс. И только потом (возможно) у меня опять запустится. Дело может в том что я установил запрещённый параметр произошёл сбой, и теперь даже если вернуть всё обратно, там что то сохраняется ещё, или что ...

Код: Выделить всё

[2012-07-29 22:53:34 - P0181_DynamicLayout3] Error in an XML file: aborting build.
И да спасибо за ваши уроки ;)
Закрываешь xml и открываешь снова, иногда Clean помогает =)
У меня тоже 6ывает такое часто, осо6енно под линём
CEO of a company R.id.team

brainail
Сообщения: 3
Зарегистрирован: 30 июл 2012, 00:11

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение brainail » 30 июл 2012, 00:42

Finch писал(а):
brainail писал(а):Извините что задаю этот вопрос здесь, но уже надоело. Постоянно происходит сбой парсинга XML файла. Вот например в этом уроке, если я скопирую ваш XML, и запущу, то всё хорошо. Если допустим я добавлю в него background для первого Linear Layout, то слетает парсер. Ладно, я удаляю строчку установки background-а (т.е по сути вернулся к вашему XML файлу который запускался отлично), и у меня всё равно ошибка парсера, причём файл *.out.xml не удаляется сразу, а только возможно когда в Debug удалить процесс. И только потом (возможно) у меня опять запустится. Дело может в том что я установил запрещённый параметр произошёл сбой, и теперь даже если вернуть всё обратно, там что то сохраняется ещё, или что ...

Код: Выделить всё

[2012-07-29 22:53:34 - P0181_DynamicLayout3] Error in an XML file: aborting build.
И да спасибо за ваши уроки ;)
Закрываешь xml и открываешь снова, иногда Clean помогает =)
У меня тоже 6ывает такое часто, осо6енно под линём

Ясно, да, Clean действительно показывает стабильность, но главное ещё находятся в файле Activity :) Тогда no problem как говорится :) Спасибо!

Samigg
Сообщения: 1
Зарегистрирован: 02 сен 2012, 22:44

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Samigg » 03 сен 2012, 17:05

Здравствуйте, поправьте немного код, чтобы он везде был на желтом фоне, спасибо.

tolik777
Сообщения: 37
Зарегистрирован: 06 июл 2012, 14:25

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение tolik777 » 02 дек 2012, 16:21

Подскажите почему у меня не работает следующий код:

Код: Выделить всё

@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView(this));

        .........


        final ToggleButton myLightButton = new ToggleButton(this);
        myLightButton.setText("BTN1");
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        lp2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        lp2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        myLightButton.setLayoutParams(lp2);
        addContentView(myLightButton, lp2);
Сама кнопка отображается, но в верхнем левом углу, а в нижнем правом не хочет

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение damager82 » 06 дек 2012, 17:52

tolik777 писал(а):Сама кнопка отображается, но в верхнем левом углу, а в нижнем правом не хочет
Попробуйте искать конкретный RelativeLayout и к нему addView выполнять, а не общий addContentView.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
PankovAlxndr
Сообщения: 4
Зарегистрирован: 04 июн 2013, 22:19
Откуда: Кострома

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение PankovAlxndr » 18 июн 2013, 20:08

Здравствуйте.
В вашем примере мы меняем ширину кнопки!
Получается так: Перетаскивая seek в крайнее, например, левое положение, мы видим всю ту же левую маленькую кнопку с текстом "0" (правая "100"), все просто прекрасно.

Я пытаюсь сделать подобное только с высотой кнопки, аналогично, в крайнем положении у меня одна из кнопок сужается в тонкую полоску, что ее вообще не видно... не подскажите как это исправить красиво (можно и обычным if, наверное), но в случае с шириной мы этого ничего не делали же, не указывали минимально возможную ширину..
Как быть с высотой, чтобы кнопка не сужалась "в ноль", и даже в крайнем положении было видно что на ней написано хотя бы...

Заранее благодарен...

sergey5
Сообщения: 7
Зарегистрирован: 25 июн 2013, 22:42

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение sergey5 » 26 июн 2013, 13:43

Появился вопрос по идеалогии android API после изучения этого урока. Почему используется конструкция:

Код: Выделить всё

lParams1.weight = 1;
вывозМетодаПерерисовки();
вместо того, как это обычно делается в Java:
lParams1.setWeight(1);
Проше говоря, почему и зачем игнорируется принцип инкапсуляции данных? (ради скорости или чего-то ещё?)

Pomeo44
Сообщения: 5
Зарегистрирован: 14 авг 2013, 09:14

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Pomeo44 » 14 авг 2013, 09:27

Здравствуйте! Помогите разобраться с привязкой нового слоя программно. Мой XML файл:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </TableRow>

</RelativeLayout>
По нажатию на button1 мне нужно добавлять ниже еще один TableRow. Но я не могу разобраться как привязать его к уже существующему TableRow.:

Код: Выделить всё

RelativeLayout.LayoutParams lParams = new RelativeLayout.LayoutParams(wrapContent, wrapContent);
//lParams.gravity = Gravity.LEFT;
lParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
TableRow strokaLayout = new TableRow(this);
mainLayout.addView(strokaLayout, lParams);
Заранее спасибо!

Pomeo44
Сообщения: 5
Зарегистрирован: 14 авг 2013, 09:14

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Pomeo44 » 14 авг 2013, 11:17

Разобрался почему не работало. Но возникла новая проблема в получении id view элемента созданного программно. Код следующий:

Код: Выделить всё

...
headStroka = (TableRow) findViewById(R.id.tableRow1);
idPoslednjaStroka = headStroka.getId();
...
ableRow.LayoutParams lParams = new TableRow.LayoutParams(wrapContent, wrapContent, 1);
TableRow strokaLayout = new TableRow(this);
mainLayout.addView(strokaLayout, lParams);
RelativeLayout.LayoutParams tekParams = (RelativeLayout.LayoutParams) strokaLayout.getLayoutParams();
tekParams.addRule(RelativeLayout.BELOW, idPoslednjaStroka);
tekParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 1);
	    	   	    	   
Button testBottom = new Button(this);
testBottom.setBackgroundColor(Color.GREEN);
testBottom.setText("13");
strokaLayout.addView(testBottom, lParams);

[b]idPoslednjaStroka = strokaLayout.getId();[/b]
Счас при первом создании testBottom конпка создается в правильном месте, но idPoslednjaStroka присваивается -1. В Отладчике элемент strokaLayout отображается так же как и headStroka и пишет его id, но getId() почему то не хочет говорить какой id у элемента.

Подскажите!

Volha
Сообщения: 61
Зарегистрирован: 20 авг 2012, 17:39

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Volha » 15 авг 2013, 17:22

Pomeo44 писал(а): Счас при первом создании testBottom конпка создается в правильном месте, но idPoslednjaStroka присваивается -1. В Отладчике элемент strokaLayout отображается так же как и headStroka и пишет его id, но getId() почему то не хочет говорить какой id у элемента.

Подскажите!
Потому что у strokaLayout не задано id, нечего и брать. Программно его можно установить методом setId(int id). Можно также воспользоваться механизмом расстановки тэгов: setTag(Object tag) и искать потом элемент как View v = findViewWithTag(Object tag).
А у headStroka id задан через xml.

Pomeo44
Сообщения: 5
Зарегистрирован: 14 авг 2013, 09:14

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Pomeo44 » 16 авг 2013, 12:21

Огромное спасбио! Использую setId()

kokaqwerty
Сообщения: 6
Зарегистрирован: 23 сен 2013, 20:42

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение kokaqwerty » 23 сен 2013, 21:04

Ребят, помогите пожайлуста никак не могу понять как мне с помощью SeekBar регулировать rate в SoundPool объясните мне пожайлуста уже неделю роюсь

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Isaev » 10 окт 2013, 14:13

А как достучаться до изменения цвета SeekBar'a?

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Isaev » 11 окт 2013, 14:19

Не возможно? или никто не пробовал? :)

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение Foenix » 11 окт 2013, 14:37

Isaev писал(а):Не возможно? или никто не пробовал? :)
15 секунд гугления, 1 ссылка
https://www.google.ru/search?client=ope ... ge%20color

http://stackoverflow.com/questions/3480 ... w-to-white
меняй на здоровье.
пример еще по-русски полной кастомизации
http://and2tp.blogspot.ru/2011/10/seekbar.html
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

alizmay
Сообщения: 1
Зарегистрирован: 04 дек 2013, 19:47

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение alizmay » 04 дек 2013, 19:55

Спасибо авторам за эти уроки. У меня такой вопрос: почему, когда я меняю weight, btn1.requestLayout() перерисовывает кнопку, а btn1.invalidate() не перерисовывает?

TittTitov
Сообщения: 27
Зарегистрирован: 20 ноя 2013, 22:46

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение TittTitov » 03 янв 2014, 18:08

Доброго времени суток!

Подскажите, как правильно записывается код если нужно добавить к описанию класса Activity одновременно, например, OnClickListener и OnSeekBarChangeListener?

Спасибо!

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение altwin » 03 янв 2014, 18:19

TittTitov писал(а):Доброго времени суток!

Подскажите, как правильно записывается код если нужно добавить к описанию класса Activity одновременно, например, OnClickListener и OnSeekBarChangeListener?

Спасибо!
public class MyActivity extends Activity implements OnClickListener, OnSeekBarChangeListener{ ... }
Изображение

tuuurrik
Сообщения: 6
Зарегистрирован: 01 апр 2014, 15:02

Re: Урок 18. Меняем layoutParams в рабочем приложении

Сообщение tuuurrik » 01 апр 2014, 22:54

Чисто для себя хотел в конце урока сделать возврат ползунка на середину при нажатии на какую-нибудь кнопку. И возник тупой вопрос=) : хотел сделать обработчиком нажатия activity, но у нас там уже стоит
"public class MainActivity extends ActionBarActivity implements OnSeekBarChangeListener"
Мне добавить в конце этого implements OnClickListener? Или сделать другой обработчик?
Спасибо!

Ответить