Я новичок в разработке Android и застрял в дизайне. Я хотел бы разработать приложение с одним действием с несколькими фрагментами. Но что бы я ни думал, я застрял в дизайне. Сначала я рассматривал фрагменты как компоненты или виджеты, которые я мог организовать в любом месте на своем экране. Но одно действие имеет только один макет представления xml и не может найти решение.
Вот чего я хочу.
Дизайн пользовательского интерфейса
Проблемы следующие.
Выбор макета: мне нужен макет для полноэкранного фрагмента экрана 1, но еще один разделенный для других экранов.
Клавиатура: если я делаю макет полноэкранного фрагмента для всех своих экранов с фрагментом (игровой клавиатуры) и фрагментом (дико-клавиатуры), как мне удалить клавиатуру в фрагменте дико на планшетах? И могу ли я разделить код клавиатуры между обоими фрагментами?
Я видел, что вызов setContentView во время выполнения немного раздражает, так как вам нужно переназначать свои переменные, и это не подходит. Все приложения, которые я нахожу, представляют собой полноэкранные отдельные фрагменты в макете, позволяющие использовать такие библиотеки, как ViewPager. Я не могу найти пример составного экрана с компонентами-фрагментами.
Какой макет вы бы выбрали, с какими фрагментами? Или вы знаете библиотеку, позволяющую компоновать фрагменты в виде виджетов на экране? Спасибо за вашу помощь.
Я нашел решение этой конструкции. Одно действие, три фрагмента хоста для обработки конфигурации экрана и только полноэкранные фрагменты для pageViwer. И вложенные фрагменты для моих компонентов. Теперь у меня есть клавиатура, которую я могу раскрашивать, модифицировать и делать то, что мне нужно.
Вы можете добавлять фрагменты и перемещаться.
Прежде всего, вам нужна навигация: в левой части Android Studio вы можете найти Менеджер ресурсов. Затем щелкните Навигация, затем щелкните + и выберите Файл ресурсов навигации.
После этого вы можете добавить фрагмент в навигацию: Новая цель (зеленый +) (не забудьте дать имя своим фрагментам).
После этого вы можете добавить навигацию в xml вашей активности. Вы должны использовать код app:menu=”@menu/bottom_nav_menu”
в своем xml
Вот видео о процессе: https://thewikihow.com/video_Chso6xrJ6aU
Спасибо за ответ. Интересный. Но это решение для одного фрагмента на странице еще раз.
Добро пожаловать в Android. Пристегнитесь, это будет ухабистая поездка.
Во-первых, вы должны провести некоторое время с руководствами для разработчиков Android.
Руководства для разработчиков | Android-разработчики
Понимание вашей конкретной проблемы заключается в том, что макеты являются Ресурсы, и вы можете иметь ресурс макета, который изменяется на основе конфигурация.
Например, у вас может быть такой ресурс, как layout_main
, с одним XML-файлом для небольших устройств и другим XML-файлом для больших устройств.
Обзор ресурсов приложения | Android-разработчики
Создание альтернативных макетов | Поддержка различных размеров экрана | Android-разработчики
Вы можете расположить фрагменты на макете с помощью конструктора макетов Android Studio.
Спасибо за ответ. Я в порядке с разными размерами экрана и макетами. Я вижу разницу в настройке телефонов/планшетов. Моя проблема - дизайн фрагмента клавиатуры. Без фрагмента клавиатуры дизайн был бы в порядке.
В Android это называется Редактор метода ввода (IME). Философия, которую они хотят, чтобы вы использовали, заключается в том, что пользователь/система должны отображать/использовать IME. Клавиатуры — не единственный вид IME. Таким образом, вы проектируете так, чтобы пользовательский интерфейс работал независимо от того, отображается IME или нет. Это немного спорно, потому что большинство разработчиков, таких как вы, хотят знать, как будет выглядеть весь экран.
Моему приложению нужен специальный символ, и пользователям было бы проще отображать то, что им нужно, на экране. Итак, вы считаете, что лучше позволить Android позаботиться о клавиатуре и создать на экране один полноэкранный фрагмент. Это действительно сильно упростило бы конструкцию.
Есть ли способ иметь пользовательскую клавиатуру для приложения? Это решило бы мою проблему.
Конечно, ключи — это просто кнопки внутри контейнера макета. В идеале вам не нужно переписывать IME, но в зависимости от приложения это может иметь смысл.
Например, веб-приложение New York Times Wordle имеет настраиваемую клавиатуру, а не текстовую запись, которая появляется на клавиатуре платформы. Это HTML и скрипт, а не нативный Android, но принцип дизайна присутствует.
Наконец, я буду использовать системную клавиатуру. Он делает один фрагмент на экран. Нет больше проблем