В этом уроке:
- работаем с PreferenceFragment - используем Headers
В Уроках 71-75 мы рассматривали особый вид Activity – PreferenceActivity. Оно позволяет нам удобно работать с Preferences. ...
В этом уроке:
- работаем с ListFragment
Вернемся к фрагментам. В Android есть несколько полезных классов – наследников класса Fragment. Мы рассмотрим несколько из них. Начнем с ListFragment. ...
... TaskModule::class], dependencies = [AppComponent::class])
interface TaskComponent {
fun injectTasksFragment(tasksFragment: TasksFragment)
}
Теперь TaskComponent - это компонент, который рассчитывает, ...
... которые нужны только фрагменту TasksFragment. В нашем случае - это объекты TaskRepository и TaskApi. А вот Database давайте считать общим объектом, который может понадобиться в других модулях. Поэтому ...
Мы решаем пойти в сторону single-Activity архитектуры. У нас в модуле app есть MainActivity, которое будет отображать фрагменты. На замену TasksActivity будем создавать TasksFragment. Причем не в app, ...
... Hilt в приложении.
В новом проекте сделаем пример того же самого приложения с двумя Activity (OrderActivity и UserActivity) и фрагментом (OrderFragment). Но теперь Hilt все свои классы будет создавать ...
... А также в OrderActivity будем использовать фрагмент OrderFragment.
Чтобы пример получился максимально простым и понятным, мы пока не будем использовать модули и scope. О них поговорим позже, в отдельных ...
... Например, чтобы повторно не показывался Toast или SnackBar, когда View после пересоздания снова подключается к LiveData.
Основные компоненты
TaskDetailActivity, TaskDetailFragment - экран ...
... когда View после пересоздания снова подключается к LiveData.
Основные компоненты:
TasksActivity, TasksFragment - экран
TasksViewModel - логика
TasksRepository - данные
Схема ссылок ...
В этом уроке разбираемся, как задавать параметры при навигации.
В графе у нас есть три основных объекта, у которых мы можем задавать параметры: это destination Fragment, destination Activity ...
... обоих фрагментов getActivity вернет одно и то же Activity. Метод ViewModelProviders.of вернет провайдера этого Activity. Далее методом get получаем модель.
Код фрагментов:
public class MasterFragment ...
...
Фрагментный шейдер fragment_shader.glsl
uniform переменная, в которую мы помещаем номер слота, имеет тип samplerCube. Это (насколько я понял) означает, что в слоте с указанным номером шейдер будет ...
... данные по координатам текстуры.
Фрагментный шейдер fragment_shader.glsl. В нем у нас есть uniform переменная u_TextureUnit, в которую мы получаем номер юнита, в котором находится нужная нам текстура. ...
... линию.
Все расчеты значений varying переменных выполняет система. Нам нужно только задать значения в вершинном шейдере и считать их в фрагментном.
Перепишем фрагментный шейдер fragment_shader.glsl: ...
... и никак не влияет на входные данные (a_Position), а только транслирует их дальше (gl_Position).
С вершинами разобрались. Теперь в res\raw создаем файл фрагментного шейдера.
fragment_shader.glsl: ...