Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
androman
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29
1

Доступ к элементам вью во время создания Activity

09.03.2017, 07:12. Просмотров 258. Ответов 6
Метки нет (Все метки)

Есть Activity. На ней textView. Мне нужно поставить этот textView в определенное место в зависимости от размера экрана.
Хочу вызывать textView.getTop() при onCreate. Но, он там возвращает 0, а не реальное значение. Как можно получить доступ к свойствам вью во время создания Activity?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2017, 07:12
Ответы с готовыми решениями:

Доступ к элементам Activity из другого класса
Есть Activity, в её классе создаю экземпляр другого класса twoclass tw = new...

Ошибка создания activity в мастере
Всем привет. Вторые сутки бьюсь над проблемой: при создании нового проекта в...

Доступ к БД из другого Activity.
Очередной нубский вопрос. В главном активити есть dbHelper. Все хорошо. Хочу...

Доступ к Notification из Activity
доброго времени всем. нужна ваша помощь коллеги. вот такая задачка, есть некий...

В классе не Activity доступ к Resources
У меня есть класс Joke, который не является activity. В MainActivity создаю...

6
Hank
64 / 55 / 5
Регистрация: 28.12.2011
Сообщений: 309
09.03.2017, 10:52 2
Цитата Сообщение от androman Посмотреть сообщение
Мне нужно поставить этот textView в определенное место в зависимости от размера экрана.
Ну так сделайте для разных экранов разные файлы layout и андроид все сделает за вас - возьмет нужный файл.

Цитата Сообщение от androman Посмотреть сообщение
Но, он там возвращает 0
В onCreate любая характеристика view будет 0.
0
vxg
Модератор
3278 / 2075 / 327
Регистрация: 13.01.2012
Сообщений: 8,055
09.03.2017, 11:04 3
androman, как костыль - в onCreate сделать
Java
1
2
3
4
5
6
        что_то.postDelayed(new Runnable() {
            @Override
            public void run() {
                //делаем дело
            }
        }, 500);
0
androman
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29
09.03.2017, 13:57  [ТС] 4
Спасибо за ответы. Оказывается все намного проще - можно вместо onCreate использовать onStart или onResume. Т.е. код вписать именно в onStart или onResume.
А Вы про это знали? ))
0
Hank
64 / 55 / 5
Регистрация: 28.12.2011
Сообщений: 309
09.03.2017, 14:19 5
Java
1
А Вы про это знали? ))
Знали. Только это г*внокод.
Вы сами то представляете для чего нужны эти два метода?
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,824
Завершенные тесты: 1
09.03.2017, 15:34 6
если действительно нужно сдвигать элементы внутри какого-то лаяута ручками и резиновая разметка не подходит то проще всего так
кусок кода из onCreate активити
Java
1
2
3
4
5
6
7
8
9
        final Button button = (Button) findViewById(R.id.btn);
        final FrameLayout layout = (FrameLayout) findViewById(R.id.rootLayout);
        layout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) button.getLayoutParams();
                lp.topMargin = (bottom - top) / 10;
            }
        });
layout - это лаяут, в котором болтается наша кнопка
в примере показано, что как только меняется размер лаяута, в котором находится кнопка - ей пересчитывается верхний отступ так, что бы она всегда была 10% от верхнего края лаяута

задавать вьюшкам и кнопкам setTop - плохо, поставь курсор на этот метод и нажми Ctrl+Q и прочитай что там написано
для ленивых и прочих
Added in API level 11
void setTop (int top)
Sets the top position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, because the property may be changed at any time by the layout.
2
androman
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29
09.03.2017, 18:01  [ТС] 7
Мне изначально нужно было прочитать textView5.getTop и textView5.getBottom при onStart и onResume.
Оказывается я ошибался - даже на onStart и onResume getTop и getBottom не срабатывает - возвращает нули ((
0
09.03.2017, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2017, 18:01

Время нахождения пользователя в данной Activity
Здравствуйте! Возникла такая задача: нужно замерить время, в течение которого...

Переход между Activity через заданное время. Как лучше?
Добрый день. Вопрос от новичка. Какую задачу хотел решить: появляется...

Как получить доступ к методам объекта класса наследуемого от Activity, когда он выводится во вкладку
В главном Активити создаются вкладки на котовые выводятся другие активити. ...


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

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

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