小编Pau*_*zon的帖子

为什么这个函数在 Jetpack Compose 中被多次调用?

我目前正在尝试 Android Compose。我有一段显示加密货币价格的文本。如果价格上涨,文本的颜色应为绿色,但如果价格下降,文本的颜色应为红色。当用户单击按钮时调用该函数。问题是该函数showPrice()被调用多次(有时只调用一次,有时 2-4 次)。因此,用户可能会看到错误的颜色。我该怎么做才能确保它只被调用一次?

主要活动:

@Composable
fun MainScreen() {
    val priceLiveData by viewModel.trackLiveData.observeAsState()
    val price = priceLiveData ?: return

    when (price) {
                is ViewState.Response -> showPrice(price = price.data)
                is ViewState.Error -> showError(price.text)
            }

    Button(onClick = {viewModel.post()} )
}

@Composable
private fun showPrice(price: Double) {
    lastPrice = sharedPref.getFloat("eth", 0f).toDouble()
    val color by animateColorAsState(if (price >= (lastPrice)) Color.Green else 
Color.Red)
    Log.v("TAG", "last=$lastPrice new = $price")
    editor.putFloat("eth", price.toFloat()).apply()
    Text(
          text = price.toString(),
          color = color,
          fontSize = 28.sp,
          fontFamily = …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack android-jetpack-compose

11
推荐指数
1
解决办法
7105
查看次数

如何在 React Native (android) 中同步 gradle?

我尝试过./gradlew build,但没有成功,因为它看不到 gradle 文件中所做的更改。唯一对我有用的是重新启动并使缓存无效,但必须有更好的方法来做到这一点。

谢谢

android gradle react-native

5
推荐指数
1
解决办法
3896
查看次数