Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29

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

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

Студворк — интернет-сервис помощи студентам
Есть Activity. На ней textView. Мне нужно поставить этот textView в определенное место в зависимости от размера экрана.
Хочу вызывать textView.getTop() при onCreate. Но, он там возвращает 0, а не реальное значение. Как можно получить доступ к свойствам вью во время создания Activity?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2017, 07:12
Ответы с готовыми решениями:

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

Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего?
Ответ как бы знаю(нет , да). но наверное я что-то не так понимаю, т.к. примерчик написать не получается. class BaseClass { ...

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

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

Цитата Сообщение от androman Посмотреть сообщение
Но, он там возвращает 0
В onCreate любая характеристика view будет 0.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.03.2017, 11:04
androman, как костыль - в onCreate сделать
Java
1
2
3
4
5
6
        что_то.postDelayed(new Runnable() {
            @Override
            public void run() {
                //делаем дело
            }
        }, 500);
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29
09.03.2017, 13:57  [ТС]
Спасибо за ответы. Оказывается все намного проще - можно вместо onCreate использовать onStart или onResume. Т.е. код вписать именно в onStart или onResume.
А Вы про это знали? ))
0
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
09.03.2017, 14:19
Java
1
А Вы про это знали? ))
Знали. Только это г*внокод.
Вы сами то представляете для чего нужны эти два метода?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.03.2017, 15:34
если действительно нужно сдвигать элементы внутри какого-то лаяута ручками и резиновая разметка не подходит то проще всего так
кусок кода из 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
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 29
09.03.2017, 18:01  [ТС]
Мне изначально нужно было прочитать textView5.getTop и textView5.getBottom при onStart и onResume.
Оказывается я ошибался - даже на onStart и onResume getTop и getBottom не срабатывает - возвращает нули ((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2017, 18:01
Помогаю со студенческими работами здесь

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

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

Время создания статьи при модификации даты создания…
При модификации даты создания материалов, время создания устанавливается в 0 часов 0 минут. А с учетом часового пояса (Москва – UTC...

В классе не Activity доступ к Resources
У меня есть класс Joke, который не является activity. В MainActivity создаю экземпляр класса Joke : Joke joke = new Joke(this); А в...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru