надо сказать, урок не всем "подойдет".
мое приложение вообще написано с одним активити, а вся интеракция с пользователем - на фрагментах, открывающимися выше.
идея же данного урока - что основное активити - только для landscape а если нет - то как минимум 2 активити. Но язык не должен принуждать меня открывать активити если по дизайну это не подходит.
а писать код для одного активити для разных экранов - это уже отдельная задача, знаний из этой статьи не почерпнуть.
Урок 115. Одно приложение на разных экранах
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Урок 115. Одно приложение на разных экранах
есть такая проблема:
в приложении тупо листаются страницы с текстом. справочник такой) ну вот мне вообще фиолетово какой размер девайса: там две кнопки под текстом назад и вперёд. и на всю страницу заливается текст. выбор текста происходит через меню в уголке. всё. ничего другого там не предвидется.
текст обёрнут в scroll и на мелких экранах без проблем таскается.
У меня нет потребности ни во фрагментах ни в перевёрстывании под горизонталь или вертикаль. Всё достаточно топорно и просто.
Залил сие на плеймаркет. Он мне пишет что мол оно не оптимизировано под планшеты 7 и 10 дюймов и постоянно ругается на эту тему.
Как ему объяснить что на планшете оно прекрасно работает?
в приложении тупо листаются страницы с текстом. справочник такой) ну вот мне вообще фиолетово какой размер девайса: там две кнопки под текстом назад и вперёд. и на всю страницу заливается текст. выбор текста происходит через меню в уголке. всё. ничего другого там не предвидется.
текст обёрнут в scroll и на мелких экранах без проблем таскается.
У меня нет потребности ни во фрагментах ни в перевёрстывании под горизонталь или вертикаль. Всё достаточно топорно и просто.
Залил сие на плеймаркет. Он мне пишет что мол оно не оптимизировано под планшеты 7 и 10 дюймов и постоянно ругается на эту тему.
Как ему объяснить что на планшете оно прекрасно работает?
Re: Урок 115. Одно приложение на разных экранах
Пробую реализовать этот урок и не получается... Когда я наследую
Функция finish(); у меня красная (не поддерживается). А когда наследую
То тогда функции setArguments(args) и getArguments() не поддерживаются. Подскажите как быть в таких случаях, когда нужны и те и другие функции, но наследоваться можно только от одного класса??
Код: Выделить всё
public class DetailsActivity extends Fragment
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE) {
finish();
return;
}
Код: Выделить всё
public class DetailsActivity extends FragmentActivity{
public static DetailsFragment newInstance(int pos){
DetailsFragment details = new DetailsFragment();
Bundle args = new Bundle();
args.putInt("position", pos);
details.setArguments(args);
return details;
}
-
- Сообщения: 1
- Зарегистрирован: 05 апр 2017, 07:18
Re: Урок 115. Одно приложение на разных экранах
Добый день!
В уроке 115 не говорится, что нужно регистрировать Activitity в манифесте, а без этого откомпилится, но детальный активити в отдельном окне окрываться не будет.
В Android Studio 2.3 есть одна особенность этого урока.
Если регистрировать класс DetailsActivity вручную в манифесте, то будет возникать ошибка при открытии данного активити (например, в вертикальной ориентации).
Поэтому класс DetailsActivity нужно обязательно добавлять через Визард в проект по правой кнопке New->Activity->Blank Activity и указывать layout = details. При добавлении с помощью Визарда, DetailActivity автоматически регистрируется в манифесте.
Добавить сразу с поддержкой библиотеки v4 через визард не получится. Поэтому я добавлял с CompactActivity (это support library v7), а потом прописывал в коде "Extendens от FragmentActivity" (т.е. менял на support library v4).
2. Еще особеность Android Studio в том, что нужно прописать версиию support library v4 в фийле Bild.Gradle приложения в разделе:
dependencies {
...
compile 'com.android.support:support-v4:22.2.1'
}
и потом обязательно нажать кнопку "Sync Project with Gradle Files" на панели инструментов, иначе файл настроками Gradle не вступит в силу.
Не забудьте поставить в том же файле targetSdkVersion 22, так как на более высоком не скомпилируется, а более поздняя версия Support Library v4 уже требует
minSdkVersion 14, а так на Support Library v4 22.2.1 можно, например, minSdkVersion 9 поставить.
В уроке 115 не говорится, что нужно регистрировать Activitity в манифесте, а без этого откомпилится, но детальный активити в отдельном окне окрываться не будет.
В Android Studio 2.3 есть одна особенность этого урока.
Если регистрировать класс DetailsActivity вручную в манифесте, то будет возникать ошибка при открытии данного активити (например, в вертикальной ориентации).
Поэтому класс DetailsActivity нужно обязательно добавлять через Визард в проект по правой кнопке New->Activity->Blank Activity и указывать layout = details. При добавлении с помощью Визарда, DetailActivity автоматически регистрируется в манифесте.
Добавить сразу с поддержкой библиотеки v4 через визард не получится. Поэтому я добавлял с CompactActivity (это support library v7), а потом прописывал в коде "Extendens от FragmentActivity" (т.е. менял на support library v4).
2. Еще особеность Android Studio в том, что нужно прописать версиию support library v4 в фийле Bild.Gradle приложения в разделе:
dependencies {
...
compile 'com.android.support:support-v4:22.2.1'
}
и потом обязательно нажать кнопку "Sync Project with Gradle Files" на панели инструментов, иначе файл настроками Gradle не вступит в силу.
Не забудьте поставить в том же файле targetSdkVersion 22, так как на более высоком не скомпилируется, а более поздняя версия Support Library v4 уже требует
minSdkVersion 14, а так на Support Library v4 22.2.1 можно, например, minSdkVersion 9 поставить.