小编Hen*_*aro的帖子

如何在 jetpack Compose 中将输入类型设置为 Integer?

如何使TextField输入仅接受整数以及如何将位数限制为 2?

我已经将键盘设置如下,但这允许输入小数,我只需要正整数

keyboardOptions = KeyboardOptions(
    keyboardType = KeyboardType.Number
)
Run Code Online (Sandbox Code Playgroud)

textfield kotlin android-jetpack-compose

9
推荐指数
1
解决办法
7615
查看次数

使用 JetpackCompose LazyColumn 时 Compose-Espresso 链接变得空闲超时

我正在尝试在 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)

android kotlin android-jetpack-compose

8
推荐指数
1
解决办法
5428
查看次数

如何在 jetpackCompose 的 LazyColumn 中对齐不同的项目

我正在使用 firebase 构建一个聊天应用程序,我需要在编写消息时最后和在接收时开始时对齐聊天气泡,就像在 Whatsapp 中一样。如果我在lazyColumn中使用horizo​​ntalArrangement,它会影响所有项目。我尝试在聊天气泡中使用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

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

模拟 Dio 无法在 Flutter 中测试我的应用程序

我正在尝试使用 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)

testing mockito dart flutter dio

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