diff --git a/README.md b/README.md new file mode 100644 index 0000000..1ad48ca --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +[![Android Studio version](https://img.shields.io/endpoint?url=https%3A%2F%2Fsicampus.ru%2Fgitea%2Fcore%2Fdocs%2Fraw%2Fbranch%2Fmain%2Fandroid-studio-label.json)](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md) + +# Практическая работа. Курс Kotlin. Практическая 3.10 +Данная практическая работа направлена на реализацию бокового меню приложения + +## Дополнение XML разметки +Первым делом необходимо дополнить разметку XML для корректного использования бокового меню. Необходимые места для заполнения представлены ниже. + +Укажите параметры `app:headerLayout` и `app:menu` внутри NavigationView! Нужные XML уже реализованы внутри проекта +*activity_main.xml* +```xml +... + + /> +``` + +Реализовать 3 item'а внутри `group` для реализации имен и значков меню. Идентификаторы, имена и наименования иконок должны соответствовать таблице ниже +|id|title|icon| +|--|-----|----| +|home|Home|baseline_home_24| +|about|About|baseline_back_hand_24| +|help|Help|baseline_help_24| + +*menu.xml* +```xml + + + + + + +``` + +## Дополнение Kotlin кода +Далее необходимо дополнить код для замены текста в TextView `info` на название элемента меню, а также вывод Toast по шаблону **Page: ИМЯ_ЭЛЕМЕНТА_МЕНЮ** + +MainActivity.kt +```kotlin +... +navigationView?.setNavigationItemSelectedListener( + NavigationView.OnNavigationItemSelectedListener { item -> + // TODO: Реализовать здесь + drawerLayout?.closeDrawer(navigationView!!) + false + } +) +``` \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ee5c40..4162890 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,14 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.Default" - tools:targetApi="31" /> + android:theme="@style/Theme.Design.Light.NoActionBar" + tools:targetApi="31"> + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/MainActivity.kt b/app/src/main/java/ru/myitschool/work/MainActivity.kt new file mode 100644 index 0000000..f9e8daa --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/MainActivity.kt @@ -0,0 +1,41 @@ +package ru.myitschool.work + +import android.os.Bundle +import android.widget.EditText +import android.widget.TextView +import android.widget.Toast +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.ActionBarDrawerToggle +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.drawerlayout.widget.DrawerLayout +import com.google.android.material.navigation.NavigationView + +class MainActivity : AppCompatActivity() { + var drawerLayout: DrawerLayout? = null + var navigationView: NavigationView? = null + var actionBarDrawerToggle: ActionBarDrawerToggle? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_main) + + drawerLayout = findViewById(R.id.drawer_layout) + navigationView = findViewById(R.id.nav_view) + actionBarDrawerToggle = + ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close) + + drawerLayout?.addDrawerListener(actionBarDrawerToggle!!) + actionBarDrawerToggle!!.syncState() + navigationView?.setNavigationItemSelectedListener( + NavigationView.OnNavigationItemSelectedListener { item -> + // TODO: Создать тост по шаблону "Page: *имя элемента из меню*" + // TODO: Заменить текст в текстовом поле info + drawerLayout?.closeDrawer(navigationView!!) + false + } + ) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_back_hand_24.xml b/app/src/main/res/drawable/baseline_back_hand_24.xml new file mode 100644 index 0000000..4b6c344 --- /dev/null +++ b/app/src/main/res/drawable/baseline_back_hand_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/baseline_help_24.xml b/app/src/main/res/drawable/baseline_help_24.xml new file mode 100644 index 0000000..814f522 --- /dev/null +++ b/app/src/main/res/drawable/baseline_help_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/baseline_home_24.xml b/app/src/main/res/drawable/baseline_home_24.xml new file mode 100644 index 0000000..20cb4d6 --- /dev/null +++ b/app/src/main/res/drawable/baseline_home_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b907505 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/header.xml b/app/src/main/res/layout/header.xml new file mode 100644 index 0000000..e0642f2 --- /dev/null +++ b/app/src/main/res/layout/header.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml new file mode 100644 index 0000000..c942c23 --- /dev/null +++ b/app/src/main/res/menu/menu.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 96034ac..92dc54f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,5 @@ Work + Open + Close \ No newline at end of file