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

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

Войти
Регистрация
Восстановить пароль
 
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
#1

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

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

Как расположить динамически созданный progressbar по центру:
Java
1
2
ProgressBar progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge);
this.addView(progressBar);
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
11.08.2014, 17:29     Динамически созданный элемент по центру #2
LayoutParams как аргумент для addView в помощь.
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
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);
Но ничего не выходи, как был в левом верхнем углу, так там и остался.
shulyakyarik
10 / 10 / 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);
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
11.08.2014, 19:53  [ТС]     Динамически созданный элемент по центру #5
shulyakyarik, и такое пробовал, не выходит.
shulyakyarik
10 / 10 / 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);
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
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);
        }
        
    }
shulyakyarik
10 / 10 / 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);
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:15     Динамически созданный элемент по центру #9
а добавить вьюху, передав параметры - не?
addView(view, lp) - такое уже не катит?
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
12.08.2014, 18:22  [ТС]     Динамически созданный элемент по центру #10
NiRamz, нет.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:28     Динамически созданный элемент по центру #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
а я говорю катит.
проблема в том, что WebView наследуется от AbsoluteLayout, который в свою очередь не поддерживает относительное позиционирование внутри себя. То что вы суете ему всевозможные параметры от RelativeLayout погоды не сделают, они просто проигнорятся. Что бы был эффект, вложите webView в framelayout и поместите туда же progressbar с gravity="center", потом можно найти его по айдишнику и сделать все что угодно
Jason
388 / 388 / 46
Регистрация: 25.12.2011
Сообщений: 900
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);
Миниатюры
Динамически созданный элемент по центру  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 21:18     Динамически созданный элемент по центру
Еще ссылки по теме:
Android GridView: выравнивание колонок по центру
Какой тег отвечает за выравнивание по центру текста? Android
Создание подкнопки динамически Android
Android Динамически созданные обьекты?
Android Динамически созданные компоненты

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

Или воспользуйтесь поиском по форуму:
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
13.08.2014, 21:18     Динамически созданный элемент по центру #13
еще раз внимательно перечитайте мой пост
Yandex
Объявления
13.08.2014, 21:18     Динамически созданный элемент по центру
Ответ Создать тему
Опции темы

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