如何使TextField输入仅接受整数以及如何将位数限制为 2?
我已经将键盘设置如下,但这允许输入小数,我只需要正整数
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Number
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 JetpackCompose 中测试我的惰性列,但不断收到此错误:[Compose-Espresso link] to变得空闲超时
我尝试使用 composeTestRule.waitforIdle() 但它不起作用。我在这里缺少什么?
@HiltAndroidTest
class MainTest {
@get:Rule(order = 1)
var hiltTestRule = HiltAndroidRule(this)
@get:Rule(order = 2)
var composeTestRule = createAndroidComposeRule<MainActivity>()
private val context = InstrumentationRegistry.getInstrumentation().context
@Before
fun setup() {
hiltTestRule.inject()
composeTestRule.setContent {
HomePage(
context = context,
viewModel = composeTestRule.activity.viewModels<MarvelViewModel>().value,
onClick = {}
)
}
composeTestRule.onRoot().printToLog("currentLabelExists")
}
@Test
fun isResultDisplayedOnLazyColumn() {
composeTestRule.waitForIdle()
composeTestRule.onNode(hasImeAction(ImeAction.Done)).performTextInput("iron man")
composeTestRule.onNode(hasImeAction(ImeAction.Done)).performImeAction()
composeTestRule.onNodeWithTag(TAG_LAZY_COLUMN, useUnmergedTree = true).assertIsDisplayed()
Run Code Online (Sandbox Code Playgroud) 我正在使用 firebase 构建一个聊天应用程序,我需要在编写消息时最后和在接收时开始时对齐聊天气泡,就像在 Whatsapp 中一样。如果我在lazyColumn中使用horizontalArrangement,它会影响所有项目。我尝试在聊天气泡中使用modifier.align,但没有任何反应。我怎样才能做到这一点?
下面是我的懒惰专栏
LazyColumn(
modifier = Modifier.fillMaxWidth(),
) {
if (list != null && list.isNotEmpty()) {
items(items = list) {
if (it.user1id == args.userId) {
ChatCard(
message = it,
color = Color.Magenta,
modifier = Modifier
.align(Alignment.CenterHorizontally)
.padding(
start = 32.dp,
end = 4.dp,
top = 4.dp
)
)
} else {
ChatCard(
message = it,
color = Color.White,
Modifier.padding(
start = 4.dp,
end = 32.dp,
top = 4.dp
)
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
@Composable
fun ChatCard(message: …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-compose android-jetpack-compose-list
我正在尝试使用 Dio 为我的请求编写单元测试,但我不断收到此错误: 类型“Null”不是类型“BaseOptions”的子类型
我尝试以多种不同的方式在 DioMock 上添加基本选项,但测试保持不变。我该如何修复它?
以下是我的网络课程和测试课程。
class NetworkService {
final Dio dio;
NetworkService(this.dio){
dio.options.baseUrl = "https://food2fork.ca/api/recipe/search";
dio.options.headers['Authorization'] = 'Token 9c8b06d329136da358c2d00e76946b0111ce2c48';
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler){
print('base ${options.baseUrl}');
print("PATH: ${options.path}");
return handler.next(options);
},
onResponse: (response, handler){
print("RESPONSE: ${response.statusCode} PATH: ${response.requestOptions.path}");
return handler.next(response);
},
onError: (DioError e, handler){
print("ERROR: ${e.response?.statusCode} => PATH: ${e.requestOptions.path}");
return handler.next(e);
}
));
}
Future<List<Recipe>> getRecipe() async {
var response = await dio.get('/?page=1&query=beef');
print("response ${response.data}");
if(response.statusCode == 200){
final List<Recipe> recipeList = [];
for(Map<String, dynamic> recipe in …Run Code Online (Sandbox Code Playgroud)