Страница 2 из 5

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

Добавлено: 30 июл 2012, 00:20
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.
И да спасибо за ваши уроки ;)

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

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

Добавлено: 30 июл 2012, 00:39
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енно под линём

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

Добавлено: 30 июл 2012, 00:42
brainail
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 как говорится :) Спасибо!

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

Добавлено: 03 сен 2012, 17:05
Samigg
Здравствуйте, поправьте немного код, чтобы он везде был на желтом фоне, спасибо.

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

Добавлено: 02 дек 2012, 16:21
tolik777
Подскажите почему у меня не работает следующий код:

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

@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);
Сама кнопка отображается, но в верхнем левом углу, а в нижнем правом не хочет

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

Добавлено: 06 дек 2012, 17:52
damager82
tolik777 писал(а):Сама кнопка отображается, но в верхнем левом углу, а в нижнем правом не хочет
Попробуйте искать конкретный RelativeLayout и к нему addView выполнять, а не общий addContentView.

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

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

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

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

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

Добавлено: 26 июн 2013, 13:43
sergey5
Появился вопрос по идеалогии android API после изучения этого урока. Почему используется конструкция:

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

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

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

Добавлено: 14 авг 2013, 09:27
Pomeo44
Здравствуйте! Помогите разобраться с привязкой нового слоя программно. Мой 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);
Заранее спасибо!

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

Добавлено: 14 авг 2013, 11:17
Pomeo44
Разобрался почему не работало. Но возникла новая проблема в получении 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 у элемента.

Подскажите!

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

Добавлено: 15 авг 2013, 17:22
Volha
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.

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

Добавлено: 16 авг 2013, 12:21
Pomeo44
Огромное спасбио! Использую setId()

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

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

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

Добавлено: 10 окт 2013, 14:13
Isaev
А как достучаться до изменения цвета SeekBar'a?

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

Добавлено: 11 окт 2013, 14:19
Isaev
Не возможно? или никто не пробовал? :)

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

Добавлено: 11 окт 2013, 14:37
Foenix
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

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

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

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

Добавлено: 03 янв 2014, 18:08
TittTitov
Доброго времени суток!

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

Спасибо!

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

Добавлено: 03 янв 2014, 18:19
altwin
TittTitov писал(а):Доброго времени суток!

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

Спасибо!
public class MyActivity extends Activity implements OnClickListener, OnSeekBarChangeListener{ ... }

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

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