#android #android-fragments
#Android #android-фрагменты
Вопрос:
Я пытаюсь понять эту часть кода с 11.3 ЭТОГО САЙТА:
if (fragment != null amp;amp; fragment.isInLayout()) {
fragment.setText(link);
} else {
Intent intent = new Intent(getApplicationContext(),
DetailActivity.class);
intent.putExtra(DetailActivity.EXTRA_URL, link);
startActivity(intent);
}
На сайте говорится, что Detail Activity
это вызывается, когда в макете нет других фрагментов. Что это значит? Разве в макете не всегда будет фрагмент?
Я думаю, что меня больше смущает, какой файл запускается первым, потому что я не уверен, как приложение узнает, какой макет использовать в случае книжной или альбомной ориентации. Есть ли в коде часть, которая сообщает приложению использовать определенный набор инструкций для каждой ориентации?
Спасибо, любая помощь приветствуется.
Ответ №1:
Это делается по папке. Если в папке layout-land или layout-port есть файл с тем же именем, он будет переключаться между ними при вращении, уничтожая старую активность и создавая новую. На самом деле воссоздание будет происходить всегда, но оно автоматически определит, какую версию использовать, если существует несколько XML-файлов с одинаковым именем.
Комментарии:
1. Хорошо, я думаю, что я постепенно начинаю это понимать. Итак, вы говорите, что при запуске приложения приложение ищет файл xml из layout или папку layout-port в зависимости от ориентации. Просто в дополнение к этому, какой XML-файл он будет запускать первым из папок макета (после определения, какой из них использовать)? Прямо сейчас у меня есть
activity_detail.xml
иactivity_rssfeed.xml
в моей папке layout / ports.2. Какой бы вы ни указали в setContentView.
3. OOOOHHHHHHH СПАСИБО! Наконец-то все щелкнуло!