Урок 114. Android 3. Библиотека Support Library. Зачем нужна и как ее использовать на примере фрагментов
Урок 114. Android 3. Библиотека Support Library. Зачем нужна и как ее использовать на примере фрагментов
В этом уроке:
- разбираемся, зачем нужна библиотека Support Library
- на примере фрагментов используем библиотеку v4
Click here to read this article!
- разбираемся, зачем нужна библиотека Support Library
- на примере фрагментов используем библиотеку v4
Click here to read this article!
Последний раз редактировалось damager82 25 май 2017, 13:37, всего редактировалось 5 раз.
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Кстати, полезно знать, что -v4 в конце файла библиотеки jar, есть ни что иное, как квалификатор, примерно такой же как мы используем для папок с ресурсами, с аналогичным поведением.Т.е. это указание исполняемой среде какую библиотеку использовать в зависимости от версии API, непосредственно при исполнении. Если используете свои библиотеки и в зависимости от версии системы должен выполнятся разный код, можно поместить все эти библиотеки в папку libs с одинаковыми именами, но с разными окочаниями для соответствующих версий API. Разумеется, в библиотеках имена классов и сигнатуры методов должны совпадать. Не знаю насколько реально отлажен этот механизм, но задумка у разработчиков Андроид именно такая.
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Не знал про это, интересно!AndreyI писал(а):-v4 в конце файла библиотеки jar, есть ни что иное, как квалификатор
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Доброго времени суток. Подскажите, пожалуйста, с помощью какой библиотеки возможно сделать интерфейс похожий на 4.. и чтоб он был на всех версиях ? И возможно ли вообще такое сделать? Чтоб Меню было с тремя точками и вверху навигация. Какой лучше библиотекой воспользоваться v4 или ActionBarSherlock?
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Конечно, немного обидно, что v4 поддерживает фрагменты, но не поддерживает ActionBar, приятно и логичней было бы, что бы эти элементы были вместе =)
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
-v4 это никакой квалификатор.damager82 писал(а):Не знал про это, интересно!AndreyI писал(а):-v4 в конце файла библиотеки jar, есть ни что иное, как квалификатор
здесь просто сказано, что эта библиотека может быть использована начиная з API level 4 и више
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
перед тем как писать такое. читайте мат частьAndreyI писал(а):Кстати, полезно знать, что -v4 в конце файла библиотеки jar, есть ни что иное, как квалификатор
Support Library. Minimum API level supported: 4
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
объясните, что это значит? что, эти ативити с этими фрагментами не может иметь ActionBar?Gorets писал(а):Конечно, немного обидно, что v4 поддерживает фрагменты, но не поддерживает ActionBar, приятно и логичней было бы, что бы эти элементы были вместе =)
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Потому, что по мнению Google, ActionBar для старых версий (менше v11) не нужен.
Если приложение должно работать для версий меньше и больше v11, при создании приложения создаются отдельные темы в styles.xml для старых версий и новых (v11 и v14).
Квалификаторы v11 и v14 работают для версии 11 (или соответственно 14) и выше, иначе пришлось бы создавать отдельные styles.xml для всех версий от v11 до v17.
Если приложение должно работать для версий меньше и больше v11, при создании приложения создаются отдельные темы в styles.xml для старых версий и новых (v11 и v14).
Квалификаторы v11 и v14 работают для версии 11 (или соответственно 14) и выше, иначе пришлось бы создавать отдельные styles.xml для всех версий от v11 до v17.
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Люди, как вы табы делаете на этих фрагментах? у меня катавасия с классом выходит.
Из-за того, что у меня фрагменты из этой библиотеки, то ругается на строчку объявления класса компилятор.
Поиск по интернету истины не выявил. А пример взят почти дословно с сайта девелопера.
Код: Выделить всё
package ru.aaagroup.orderonline;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
public class CTabListener<T extends Fragment> implements ActionBar.TabListener {
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
/** Constructor used each time a new tab is created.
* @param activity The host Activity, used to instantiate the fragment
* @param tag The identifier tag for the fragment
* @param clz The fragment's Class, used to instantiate the fragment
*/
public CTabListener(Activity activity, String tag, Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
/* The following are each of the ActionBar.TabListener callbacks */
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// Check if the fragment is already initialized
if (mFragment == null) {
// If not, instantiate and add it to the activity
mFragment = Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content, mFragment, mTag);
} else {
// If it exists, simply attach it in order to show it
ft.attach(mFragment);
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (mFragment != null) {
// Detach the fragment, because another one is being attached
ft.detach(mFragment);
}
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// User selected the already selected tab. Usually do nothing.
}
}
Код: Выделить всё
ActionBar cannot be resolved to a type
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
на сколько мне известно саппорт либа не поддерживает actionbar, так что даже с её помощью вы не можете использовать actionbar в ниже 3.0 версиях
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Да мне и не надо ниже 4-ки. Просто я делала другие активити с фрагментами (например, разбираемый пример с девелопера где с одной стороны список, а по нажатию с другой стороны высвечивается текст), там вообще не получалось ничего, пока я не указала v4 пакет, я с ним мучилась довольно долго. Теперь я просто везде указываю эту библиотеку совместимости.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Сейчапс поменяла в загловке библиотеки на обычные - та же ошибка, ничего не изменилось.
Блин, как меня уже достало то, что примеры с девелопера, скопированные до буквы не работают. НАфига они тогда все это там пишут..
Теперь пишет ошибку на строке
Call requires API level 13 (current min is 11): android.app.FragmentTransaction#attach
Блин, как меня уже достало то, что примеры с девелопера, скопированные до буквы не работают. НАфига они тогда все это там пишут..
Теперь пишет ошибку на строке
Код: Выделить всё
ft.attach(mFragment);
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
это называется master detailнапример, разбираемый пример с девелопера где с одной стороны список, а по нажатию с другой стороны высвечивается текст
на счёт ошибки
он же вам говорит что нужно в 13 апи, а вы пытаетесь в 11Call requires API level 13 (current min is 11): android.app.FragmentTransaction#attach
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
А как быть, если в новых API используются другие методы, делающие то же самое?
Например, метод setAlpha(int) depredated начиная с API-16 и рекомендуется использовать setImageAlpha(int), который отсутствует в API-10б с которым я хочу сохранить совместимость.
Пока выставил проекту Target SDK 15, но нет гарантии, что на API-16 работоспособность сохраниться. Как правильнее поступить в таком случае?
Например, метод setAlpha(int) depredated начиная с API-16 и рекомендуется использовать setImageAlpha(int), который отсутствует в API-10б с которым я хочу сохранить совместимость.
Пока выставил проекту Target SDK 15, но нет гарантии, что на API-16 работоспособность сохраниться. Как правильнее поступить в таком случае?
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Код: Выделить всё
if(Build.VERSION.INT_SDK >= Build.VERSION_CODES.JELLY_BEAN)
//setImageAlpha(int)
else
//setAlpha(int)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Здравствуйте!
Помогите мне, пожалуйста - я успешно запускал примеры из всех уроков на своим эмуляторе Android 2.2. Иногда возникала ошибка "R cannot be resolved to a variable", с которй я успешно справлялся одним из методов, описанных на StackOverflow.com (чаще всего помогало "Clean Project" и/или перезагрузка IDE).
Сейчас пробую пример из данного урока с Support Library, все исходники взяты из текста статьи, никаких других ошибок не выдается, только эта - "R cannot be resolved to a variable".
Чего я только не пробовал - и настройки IDE крутил, и на "чистый" Eclipse ставил - бесполезно. Четкое впечатление, что эта ошибка в ее неизгоняемой форме появилась именно в связи с Support Library.
Код .xlm и .java не привожу, т.к. он один в один был скопирован мной из урока.
Помогите мне, пожалуйста - я успешно запускал примеры из всех уроков на своим эмуляторе Android 2.2. Иногда возникала ошибка "R cannot be resolved to a variable", с которй я успешно справлялся одним из методов, описанных на StackOverflow.com (чаще всего помогало "Clean Project" и/или перезагрузка IDE).
Сейчас пробую пример из данного урока с Support Library, все исходники взяты из текста статьи, никаких других ошибок не выдается, только эта - "R cannot be resolved to a variable".
Чего я только не пробовал - и настройки IDE крутил, и на "чистый" Eclipse ставил - бесполезно. Четкое впечатление, что эта ошибка в ее неизгоняемой форме появилась именно в связи с Support Library.
Код .xlm и .java не привожу, т.к. он один в один был скопирован мной из урока.
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
у тебя ошибка в каком-то из файлов xml, вот R и не создается
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Все тексты xml-файлов я брал из статьи, один в один! В Graphical Layout они, кстати, отображаются нормально.
Прилагаю скриншоты.
Прилагаю скриншоты.
- Вложения
-
- screenshots1.zip
- (1.04 МБ) 652 скачивания
Re: Урок 114. Android 3. Библиотека Support Library. Зачем н
Еще интересное наблюдение - я пробовал модифицировать код уроков 104-106 для работы с Support Library (для запуска под эмулятором android v2.2) - тоже ошибки, и только эти же. То есть, проблема либо не в исходниках уроков, либо в исходниках ВСЕХ уроков по android v3?