我通过尝试一些诸如Image和EditText的小部件来探索Jetpack的组成。
对于文本输入,它带有EditableText
。我已经尝试过下面的代码,但是在UI中没有显示任何内容
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
loadUi()
}
}
@Composable
fun loadUi() {
CraneWrapper {
MaterialTheme {
val state = +state { EditorState("") }
EditableText(
value = state.value,
onValueChange = { state.value = it },
editorStyle = EditorStyle(
textStyle = TextStyle(
fontSize = (50f)
)
)
)
}
}
}
}
我在这里想念的是什么?任何帮助将不胜感激!
答案 0 :(得分:2)
对不起,我迟来了。 API进行了一些更改,因此您的代码现在应如下所示:
@Composable
fun loadUi() {
val state = +state { EditorModel("smth") }
TextField(
value = state.value,
onValueChange = { state.value = it },
editorStyle = EditorStyle(
textStyle = TextStyle(
fontSize = (50.sp)
)
)
)
}
您还可能会错过小部件,因为它没有默认背景,如果您有空字符串,则默认情况下几乎不可见
答案 1 :(得分:2)
通过1.0.0-alpha01
,您可以使用类似的内容:
var text by remember { mutableStateOf(TextFieldValue("Text")) }
TextField(
value = text,
onValueChange = {
text = it
},
label = { Text("Label") })
答案 2 :(得分:0)
dout <- Reduce(rbind,lapply(split(dates,cumsum(!is.na(dates$dates))),
function(v) v <- within(v, dates <- seq(as.Date(dates[1]),
length = nrow(v),
by="1 month"))))
答案 3 :(得分:0)
val state = +state {
EditorModel("Edit Text")
}
TextField(
value = state.value,
onValueChange = {
state.value = it
},
textStyle = TextStyle(
fontSize = (30.sp),
color = Color.DarkGray
),
keyboardType = KeyboardType.Text
)
尝试这个。
答案 4 :(得分:0)
正如 Gabriele Mariotti 的回答中所述,这是正确的做法:
var text by rememberSaveable { mutableStateOf("Text") }
TextField(
value = text,
onValueChange = {
text = it
},
label = { Text("Label") }
)
但是,如果您遇到以下错误:
<块引用>类型 'TypeVariable(T)' 没有方法 'getValue(MainActivity, KProperty<*>)',因此它不能作为委托
只需将这两个导入添加到您的文件中即可:
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue