Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
1

Динамически созданный элемент по центру

11.08.2014, 16:07. Просмотров 1061. Ответов 12
Метки нет (Все метки)

Как расположить динамически созданный progressbar по центру:
Java
1
2
ProgressBar progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge);
this.addView(progressBar);
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2014, 16:07
Ответы с готовыми решениями:

Вставить динамически созданный TableRow между двумя другими
Динамически создаю TableRow. Но мне нужно не добавлять эту строку к...

Можно ли динамически отобразить элемент из xml файла?
Допустим, есть xml layout файл, в котором прописан какой-то элемент, например,...

Найти по id динамически созданный элемент
Доброго времени суток! Пытаюсь динамически создать див, вот код: $("<div...

Удалить динамически созданный элемент ПКМ
Добрый день, делаю курсовую, хочу удалить динамически созданный элемент правой...

Изменить динамически созданный элемент на форме
Здравствуйте! Как изменить (ну например фоновый цвет) элемента который был...

12
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
11.08.2014, 17:29 2
LayoutParams как аргумент для addView в помощь.
0
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
11.08.2014, 17:50  [ТС] 3
YuraAAA, я пробовал так:
Java
1
2
3
4
5
    progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.CENTER_IN_PARENT);
    progressBar.setLayoutParams(params);
    this.addView(progressBar);
Но ничего не выходи, как был в левом верхнем углу, так там и остался.
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
11.08.2014, 19:49 4
Jason, попробуй такое

Java
1
2
params.addRule(RelativeLayout.CENTER_VERTICAL);
params.addRule(RelativeLayout.CENTER_HORIZONTAL);
0
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
11.08.2014, 19:53  [ТС] 5
shulyakyarik, и такое пробовал, не выходит.
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
11.08.2014, 20:00 6
Jason, тогда так: дай id RelativeLayout-у и...

Java
1
2
3
4
5
6
7
8
9
10
 RelativeLayout rl = (RelativeLayout)findViewById(R.id.rl);
 
 Button button = new Button(this);
 button.setText("What");
 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
 params.addRule(RelativeLayout.CENTER_VERTICAL);
 params.addRule(RelativeLayout.CENTER_HORIZONTAL);
 button.setLayoutParams(params);
 rl.addView(button);
0
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
12.08.2014, 15:54  [ТС] 7
В общем у меня не выходит, полный код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public class MainWebActivity extends WebView {
 
        public MainWebActivity(Context context) {
            super(context);
            progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.CENTER_VERTICAL);
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);
            progressBar.setLayoutParams(params);
            RelativeLayout rl = new RelativeLayout(this.getContext());
            rl.addView(progressBar);
        }
        
    }
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
12.08.2014, 17:42 8
В LayoutParams должно быть не WRAP_CONTENT а MATCH_PARENT, а то выходит что RelativeLayout имеет размеры как ProgressBar

Добавлено через 1 час 39 минут
То что я написал выше неверно. Вот код который я протестировал(не в webview,а в обычной Activity)
Java
1
2
3
4
5
6
7
8
ProgressBar progressBar = new ProgressBar(this,null,android.R.attr.progressBarStyleLarge);
        RelativeLayout.LayoutParams params = new       RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.CENTER_VERTICAL);
        params.addRule(RelativeLayout.CENTER_HORIZONTAL);
        progressBar.setLayoutParams(params);
        RelativeLayout rl = (RelativeLayout)findViewById(R.id.rl);// rl - RelativeLayout id
        rl.addView(progressBar);
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:15 9
а добавить вьюху, передав параметры - не?
addView(view, lp) - такое уже не катит?
0
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
12.08.2014, 18:22  [ТС] 10
NiRamz, нет.
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:28 11
Лучший ответ Сообщение было отмечено Jason как решение

Решение

а я говорю катит.
проблема в том, что WebView наследуется от AbsoluteLayout, который в свою очередь не поддерживает относительное позиционирование внутри себя. То что вы суете ему всевозможные параметры от RelativeLayout погоды не сделают, они просто проигнорятся. Что бы был эффект, вложите webView в framelayout и поместите туда же progressbar с gravity="center", потом можно найти его по айдишнику и сделать все что угодно
1
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
13.08.2014, 16:55  [ТС] 12
NiRamz, не катит:
Java
1
2
3
4
5
6
            progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.CENTER_VERTICAL);
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);
            RelativeLayout rl = new RelativeLayout(this.getContext());
            this.addView(progressBar, params);
0
Миниатюры
Динамически созданный элемент по центру  
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
13.08.2014, 21:18 13
еще раз внимательно перечитайте мой пост
1
13.08.2014, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 21:18

QML удалить динамически созданный элемент
Суть программы в том что при клике на окно мышкой на нем создается элемент и...

Как удалить динамически созданный элемент?
Создаю некоторое количество label (каждый раз разное). Необходимо некоторые...

Как получить данные, введенные в динамически созданный элемент TextBox?
Подскажите пожалуйста как получить данные, вводимые в элемент TextBox, который...


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

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

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