Change icon type

This commit is contained in:
Shcherbatykh Oleg
2026-02-27 11:21:03 +03:00
parent 993ab0a0b1
commit aaed01bd12
6 changed files with 41 additions and 49 deletions

View File

@@ -5,8 +5,8 @@ import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.currentBackStackEntryAsState
import ru.fincode.core.ui.components.BottomBarItem import ru.fincode.core.ui.components.BottomBarItem
@@ -20,32 +20,20 @@ fun MainScaffold(
navController: NavHostController, navController: NavHostController,
content: @Composable (Modifier) -> Unit, content: @Composable (Modifier) -> Unit,
) { ) {
val scheduleIcon = painterResource(R.drawable.ic_progress) val scheduleIcon =
val newsIcon = painterResource(R.drawable.ic_news) androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress)
val progressIcon = painterResource(R.drawable.ic_progress) val newsIcon =
val settingsIcon = painterResource(R.drawable.ic_progress) androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress)
val progressIcon =
androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress)
val settingsIcon =
androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_progress)
val items = listOf( val items = listOf(
TopLevelItem( TopLevelItem(TopLevelDestination.SCHEDULE, R.string.tab_schedule, scheduleIcon),
destination = TopLevelDestination.SCHEDULE, TopLevelItem(TopLevelDestination.NEWS, R.string.tab_news, newsIcon),
labelRes = R.string.tab_schedule, TopLevelItem(TopLevelDestination.PROGRESS, R.string.tab_progress, progressIcon),
icon = scheduleIcon TopLevelItem(TopLevelDestination.SETTINGS, R.string.tab_settings, settingsIcon),
),
TopLevelItem(
destination = TopLevelDestination.NEWS,
labelRes = R.string.tab_news,
icon = newsIcon
),
TopLevelItem(
destination = TopLevelDestination.PROGRESS,
labelRes = R.string.tab_progress,
icon = progressIcon
),
TopLevelItem(
destination = TopLevelDestination.SETTINGS,
labelRes = R.string.tab_settings,
icon = settingsIcon
),
) )
val backStackEntry by navController.currentBackStackEntryAsState() val backStackEntry by navController.currentBackStackEntryAsState()

View File

@@ -1,11 +1,11 @@
package ru.fincode.tsudesk.presentation.main package ru.fincode.tsudesk.presentation.main
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.vector.ImageVector
import ru.fincode.tsudesk.core.navigation.TopLevelDestination import ru.fincode.tsudesk.core.navigation.TopLevelDestination
data class TopLevelItem( data class TopLevelItem(
val destination: TopLevelDestination, val destination: TopLevelDestination,
@StringRes val labelRes: Int, @StringRes val labelRes: Int,
val icon: Painter, val icon: ImageVector
) )

View File

@@ -9,6 +9,7 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import ru.fincode.tsudesk.core.navigation.AppRoute import ru.fincode.tsudesk.core.navigation.AppRoute
import ru.fincode.tsudesk.core.navigation.navigateRoute import ru.fincode.tsudesk.core.navigation.navigateRoute
import ru.fincode.tsudesk.feature.news.presentation.screen.NewsRoute
import ru.fincode.tsudesk.presentation.main.MainScaffold import ru.fincode.tsudesk.presentation.main.MainScaffold
import ru.fincode.tsudesk.feature.schedule.presentation.screen.ScheduleRoute import ru.fincode.tsudesk.feature.schedule.presentation.screen.ScheduleRoute
import ru.fincode.tsudesk.feature.splash.presentation.screen.SplashRoute import ru.fincode.tsudesk.feature.splash.presentation.screen.SplashRoute
@@ -74,8 +75,3 @@ private fun MainTabsNavHost(
} }
} }
} }
@Composable
fun NewsRoute(modifier: Modifier) {
TODO("Not yet implemented")
}

View File

@@ -3,10 +3,12 @@
android:height="24dp" android:height="24dp"
android:viewportWidth="24" android:viewportWidth="24"
android:viewportHeight="24"> android:viewportHeight="24">
<path <path
android:pathData="M12,3L1,9l11,6 9,-4.91V17h2V9L12,3z" android:pathData="M12,3L1,9l11,6 9,-4.91V17h2V9L12,3z"
android:fillColor="?attr/colorControlNormal"/> android:fillColor="#FF000000"/>
<path <path
android:pathData="M5,12.18V17c0,2.21 3.58,4 7,4s7,-1.79 7,-4v-4.82l-7,3.82 -7,-3.82z" android:pathData="M5,12.18V17c0,2.21 3.58,4 7,4s7,-1.79 7,-4v-4.82l-7,3.82 -7,-3.82z"
android:fillColor="?attr/colorControlNormal"/> android:fillColor="#FF000000"/>
</vector> </vector>

View File

@@ -0,0 +1,9 @@
package ru.fincode.core.ui.components
import androidx.compose.ui.graphics.vector.ImageVector
data class BottomBarItem(
val key: String,
val label: String,
val icon: ImageVector,
)

View File

@@ -1,17 +1,11 @@
package ru.fincode.core.ui.components package ru.fincode.core.ui.components
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBar
import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.NavigationBarItem
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.painter.Painter
data class BottomBarItem(
val key: String,
val label: String,
val icon: Painter,
)
@Composable @Composable
fun TsudeskBottomBar( fun TsudeskBottomBar(
@@ -21,19 +15,22 @@ fun TsudeskBottomBar(
) { ) {
NavigationBar { NavigationBar {
items.forEach { item -> items.forEach { item ->
val selected = item.key == selectedKey
NavigationBarItem( NavigationBarItem(
selected = item.key == selectedKey, selected = selected,
onClick = { onItemClick(item) }, onClick = { onItemClick(item) },
icon = { icon = {
Icon( Icon(
painter = item.icon, imageVector = item.icon,
contentDescription = item.label contentDescription = item.label,
tint = if (selected)
MaterialTheme.colorScheme.primary
else
MaterialTheme.colorScheme.onSurfaceVariant
) )
}, },
label = { label = { Text(item.label) }
Text(text = item.label)
},
alwaysShowLabel = true
) )
} }
} }