Работая над составной функцией с помощью Jetpack Compose, я вижу, что к некоторым элементам добавлены случайные дополнительные пробелы. Кажется, что
у IconButton
есть дополнительное дополнение. Не могу понять, почему это происходит.
Видеть:
Мой код:
Column(
modifier = modifier
.padding(
top = padding.calculateTopPadding(),
bottom = padding.calculateBottomPadding()
)
.background(MaterialTheme.colorScheme.background)
) {
Row(
modifier = Modifier.fillMaxWidth()
.padding(horizontal = Spacing.m, vertical = 0.dp),
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(
text = "Browse",
modifier = Modifier
.padding(0.dp),
color = MaterialTheme.colorScheme.onBackground,
style = TextStyle(
fontSize = 32.sp,
),
fontWeight = FontWeight.SemiBold
)
IconButton(
modifier = Modifier.padding(0.dp),
onClick = { /*TODO*/ }
) {
Icon(
imageVector = Icons.Filled.FilterAltOff,
contentDescription = stringResource(R.string.filters)
)
}
}
}
Других компонентов пока нет, и modifier
, переданный из содержащей функции, не должен иметь на это никакого влияния Row
.
На самом деле я не об этом. Пространство, о котором вы говорите, — это пространство вокруг значка. Я пытаюсь избавиться от пространства снаружи кнопки сверху, а не внутри нее.
Тем не менее, это связано с минимальной целью касания. вы не столкнетесь с этой проблемой, если замените IconButton
на любой другой некликабельный компонент. это дополнение добавляется в исходный код IconButton
, и вы не можете управлять им, поскольку для modifier
нет параметра IconButton
.
если вы все еще хотите удалить это дополнение, можно добавить .minimumInteractiveComponentSize()
к modifier
вашего Text
.
@shadox: Вы бы приняли это как ответ? В нем объясняется, откуда берется отступ и зачем он нужен.
Я исправляюсь - .minimumInteractiveComponentSize()
на Text
сделал свое дело. В этом есть 0 (нулевая) логика, но она работает. Как ни странно, это правильный ответ.
@dev.tejasb, если вы опубликуете это как ответ, я приму его, а затем продолжу разглагольствовать об обычной последовательности Google... о боже! :D
конечно, добавлю.
@Левиафан, я ожидал, что он будет равномерно распределен по IconButton
, но нет...
Пространство распределено поровну, это просто сбивающие с толку линии на превью. @shadox
Этот интервал необходим для обеспечения минимального размера цели касания.
Вы не столкнетесь с этой проблемой, если замените IconButton
на любой другой некликабельный компонент. Это дополнение добавляется в исходный код IconButton
, и вы не можете управлять им, поскольку для modifier
нет параметра IconButton
.
Если вы все еще хотите удалить это дополнение, можно добавить .minimumInteractiveComponentSize()
к модификатору вашего Text
.
В конце концов я отсортировал это по-другому, но выясню, почему это происходит. Почему пространство создано таким неравномерным образом. Спасибо за предложение.
Этот интервал необходим для обеспечения минимального размера цели касания.