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

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

Войти
Регистрация
Восстановить пароль
 
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
#1

Добавить scroll view в собственный вью - Программирование Android

20.01.2016, 01:26. Просмотров 393. Ответов 12
Метки нет (Все метки)

Я создал класс, наследуемый от вью, добавил его в разметку. Теперь я хочу программно при создании моего вью добавить в него скролл вью. создаю я его так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public NewsView(Context context){
        super(context);
        onCreate();
    }
    public NewsView(Context context,AttributeSet attrs){
        super(context, attrs);
        onCreate();
    }
    public NewsView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        onCreate();
    }
    protected void onCreate(){
        scv = new ScrollView(getContext());
        scv.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
        scv.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT;
}
но дело в том что я не могу задать width и height, тк вылетает ошибка java.lang.NullPointerException. Че делать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
20.01.2016, 11:40     Добавить scroll view в собственный вью #2
внутрь View нельзя вот просто так взять и добавить другое вью
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
20.01.2016, 15:53  [ТС]     Добавить scroll view в собственный вью #3
Паблито,Но через LayoutInflater можно загрузить вью, созданное в xml разметке. Так что же мешает создать его программно?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
20.01.2016, 16:00     Добавить scroll view в собственный вью #4
еще раз, медленно
нельзя добавить одно вью в другое, создать можно, но добавить не получится
добавлять можно только в лаяут

так как драма в первом сообщении происходит внутри кастомного вью - добавить в него же другое вью не получится
даже в xml нельзя создать так, вот НЕ валидная конструкция
XML
1
2
3
4
5
6
7
8
    <View
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
 
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </View>
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
20.01.2016, 16:11     Добавить scroll view в собственный вью #5
Цитата Сообщение от Паблито Посмотреть сообщение
нельзя добавить одно вью в другое, создать можно, но добавить не получится
добавлять можно только в лаяут
немножко не верно, не правильно судить о том можно или нет добавлять дочерние элементы из названия(типа если это *View то добавлять ничего нельзя, а если *Layout то добавлять можно), т.к. есть еще и View-контейнеры.
Более правильно будет - если вьюшка наследуется от ViewGroup, тогда она может содержать дочерние элементы.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
20.01.2016, 16:18     Добавить scroll view в собственный вью #6
именно так как я и написал - если это View то добавить в него ничего нельзя

ViewGroup это уже наследник View и в нем добавлены соответствующие методы
вьюшка не наследуется от ViewGroup, а наоборот

вью контейнеры, это не View - это вью контейнеры
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
20.01.2016, 16:28     Добавить scroll view в собственный вью #7
Цитата Сообщение от Паблито Посмотреть сообщение
именно так как я и написал - если это View то добавить в него ничего нельзя
ViewGroup это уже наследник View и в нем добавлены соответствующие методы
вьюшка не наследуется от ViewGroup, а наоборот
в общем ошибка понимания, Вы понимаете под View исключительно сам класс, при этом наследников не считаете View.
я же всех наследников View считаю View.
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
23.01.2016, 17:25  [ТС]     Добавить scroll view в собственный вью #8
Паблито, ScrollVIew к чему тогда относится?

Добавлено через 2 минуты
тогда я вообще по другому задам вопрос. Мне нужно создать структуру, которая будет созержать в себе scrollview и мноество дочернх элементов, напиханых в скролл вью, а так же будет легко добавляться в xml разметку. наверное следует наследовать от scroll view тогда?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
25.01.2016, 11:24     Добавить scroll view в собственный вью #9
начни с HelloWorld
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
25.01.2016, 11:38  [ТС]     Добавить scroll view в собственный вью #10
Паблито, зачем? Я уже сделал этот компонент, наследовав его от скролл вью, и у меня вме отлично
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
25.01.2016, 11:56     Добавить scroll view в собственный вью #11
Цитата Сообщение от danyasworld Посмотреть сообщение
и у меня вме отлично
у тебя в скролл вью несколько дочерних элементов и все отлично?
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
25.01.2016, 12:09  [ТС]     Добавить scroll view в собственный вью #12
Цитата Сообщение от Паблито Посмотреть сообщение
у тебя в скролл вью несколько дочерних элементов и все отлично?
мне скролл вью нужен только как оболочка, что бы скроллить. Что мне мешает положить в него релатив/линеар лайоут, а в лайоут уже класть все остальное?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2016, 00:18     Добавить scroll view в собственный вью
Еще ссылки по теме:
View вытесняет другое view из activity Android
Android Доступ к элементам вью во время создания Activity
Как поменять текст внутри вью полученного через layoutinflater? Android
Какая зависимость между размером шрифта и размером вью Android
Самодельный Scroll Android

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

Или воспользуйтесь поиском по форуму:
danyasworld
4 / 4 / 1
Регистрация: 12.04.2015
Сообщений: 226
Завершенные тесты: 1
21.02.2016, 00:18  [ТС]     Добавить scroll view в собственный вью #13
в общем делаю этот вью дальше - появилась интересная проблема - гружу картинки и текст и вывожу в виде блоков. Все работает, битмапы оптимизировал(recycle) в общем все как надо. но вот незадача приложение отваливается с out of memory. Картинок много(их еще сделаю, уменьшу и тд) но как освобождать память? есть компонент - list view. Он судя по всему удаляе вышедшие за экран итемы, и пересоздает их при возвращении. Пробовол сделать подобное - брал и менял у вью LayoutParams с WRAP_CONTENT на фиксированный размер, а затем удалял внутренние вью, но размер не сохраняется и скролл вью прыгает. Есть ли готовые решения/примеры реализации, на которых можно научится ДЕЛАТЬ САМОМУ, понять так сказать, принцип работы?
Yandex
Объявления
21.02.2016, 00:18     Добавить scroll view в собственный вью
Ответ Создать тему
Опции темы

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