小编New*_*zal的帖子

何时在 kotlin 中一起使用挂起函数和 Flow 或单独使用?

在审查用 kotlin 编写的一些代码时,有件事引起了我的注意。我在一些项目中查看领域层,在一些项目中,我看到挂起功能和 Flow 一起使用,而在一些项目中,我看到只使用 Flow。

例如暂停和流动在一起

class FetchMovieDetailFlowUseCase @Inject constructor(
    private val repository: MovieRepository
) : FlowUseCase<FetchMovieDetailFlowUseCase.Params, State<MovieDetailUiModel>>() {

    data class Params(val id: Long)

    override suspend fun execute(params: Params): Flow<State<MovieDetailUiModel>> =
        repository.fetchMovieDetailFlow(params.id)
}
Run Code Online (Sandbox Code Playgroud)

只是流动

class GetCoinUseCase @Inject constructor(
    private val repository: CoinRepository
){
 
    operator fun invoke(coinId:String): Flow<Resource<CoinDetail>> = flow {

        try {
            emit(Resource.Loading())
            emit(Resource.Success(coin))

        }catch (e:HttpException){
            emit(Resource.Error(e.localizedMessage ?: "An unexpected error occured"))
        }catch (e:IOException){
            emit(Resource.Error("Couldn't reach server. Check your internet connection."))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

只是暂停

class GetLatestNewsWithAuthorsUseCase( …
Run Code Online (Sandbox Code Playgroud)

suspend kotlin kotlin-flow

7
推荐指数
1
解决办法
2472
查看次数

如何在jetpack compose中对齐按钮底部中心?

我一直试图将列中的按钮从底部到中心对齐一段时间,但我无法成功。

听到的是我的代码:

营养习惯筛查

@Composable
fun NutritionHabitsRoute(
    navHostController: NavHostController,
    sharedViewModel: SharedViewModel,
    viewModel: NutritionHabitsViewModel = hiltViewModel()
) {

    val state by viewModel.state.collectAsState()

    NutritionHabit(
        navHostController = navHostController,
        sharedViewModel = sharedViewModel,
        state = state,
        buttonEnabled = viewModel::buttonEnabled
    )
}

@Composable
fun NutritionHabit(
    navHostController: NavHostController,
    sharedViewModel: SharedViewModel,
    state: NutritionHabitsScreenState,
    buttonEnabled: (MutableList<Int>, MutableList<Int>) -> Unit
) {


    val firstChoicesItems = sharedViewModel.registerItems?.choices?.get(0)?.items
    val secondChoicesItems = sharedViewModel.registerItems?.choices?.get(1)?.items

    var firstSelectedIndexes = remember { mutableListOf<Int>() }
    var secondSelectedIndexes = remember { mutableListOf<Int>() }

    Scaffold(
        topBar = { BackPopUp(navController = navHostController, …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose android-compose-layout

4
推荐指数
1
解决办法
5243
查看次数

kotlin jetpack compose 中未使用内容填充参数错误?

我该如何Content padding parameter it is not used在 kotlin 中解决这个问题?我制作了一个字典应用程序,并编辑了一些代码,我遇到了这样的问题:我应该在哪里添加内容填充?我该如何修复它?

@Composable
fun MainScreen(navController: NavController) {


    Surface(
        modifier = Modifier.fillMaxSize(),
        color = MaterialTheme.colors.background
    ) {

        Scaffold(
            topBar = {
                TopAppBar(
                    backgroundColor = bar,
                    title = {
                        Text(
                            text = "Main Menu",
                            modifier = Modifier.fillMaxWidth(),
                            color = Color.White,
                            fontSize = 22.sp
                        )
                    },
                    navigationIcon = {
                        IconButton(
                            onClick = { navController.navigate(Screen.SearchScreen.route) }
                        ) {
                            Icon(
                                painter = painterResource(id = R.drawable.ic_look_for_96),
                                contentDescription = "search",
                                tint = Color.Unspecified,
                            )
                        }
                    }
                )
            } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose

3
推荐指数
1
解决办法
1496
查看次数

有没有办法在 jetpack compose 中将 TextField 密码点图标增加得更大?

我正在做密码文本字段,我想在用户输入时做密码点,但默认密码点图标很小,我想要更大的文本字段密码点。我怎样才能做到这一点 ?

听到的是我的 TextFiedl 代码 ->

  var text by remember { mutableStateOf("") }
  var isFocused by remember { mutableStateOf(false) }
  val color = if (isFocused || text.isNotEmpty()) DefaultDYTColor else Color.Transparent

     TextField(
            modifier = Modifier
                .fillMaxWidth()
                .border(
                    width = if (isFocused) 1.dp else 0.dp,
                    color = color,
                    shape = RoundedCornerShape(25.dp)
                )
                .clip(RoundedCornerShape(25.dp))
                .onFocusChanged {
                    isFocused = it.isFocused
                },
            value = text,
            onValueChange = { newText ->
                text = newText
            },
            visualTransformation = PasswordVisualTransformation(),
            leadingIcon = {
                Image(painter = painterResource(id = R.drawable.ic_password), …
Run Code Online (Sandbox Code Playgroud)

textfield kotlin android-jetpack-compose android-compose-textfield

2
推荐指数
1
解决办法
241
查看次数