Котлин: Когда я пытаюсь добавить стиль типографии или даже базовый, текст исчезает из макетаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Котлин: Когда я пытаюсь добавить стиль типографии или даже базовый, текст исчезает из макета

Сообщение Anonymous »

Я разрабатываю приложение для Android, используя JetPack Compose и сталкиваюсь с особой проблемой с рендерингом текста. В моем основном экране Composable у меня есть Analyticsbox и DabileStilem компоненты, где текст исчезает, когда я применяю пользовательский стиль с использованием текстового стиля или моей пользовательской типографии .
Здесь есть соответствующий код:

package com.example.habitflow.ui.screen

import android.util.Log
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.example.habitflow.R
import com.example.habitflow.domain.model.Habit
import com.example.habitflow.ui.theme.Black
import com.example.habitflow.ui.theme.Pink80
import com.example.habitflow.ui.theme.Poppins
import com.example.habitflow.ui.theme.TealLight
import com.example.habitflow.ui.theme.Typography
import com.example.habitflow.ui.theme.White
import com.example.habitflow.ui.viewmodel.HabitViewModel
import com.example.habitflow.ui.viewmodel.AnalyticsViewModel

@Composable
fun MainScreen(
onAddHabitClick: () -> Unit,
onSettingsClick: () -> Unit,
onEditHabitClick: (Habit) -> Unit,
viewModel: HabitViewModel = hiltViewModel(),
analyticsViewModel: AnalyticsViewModel = hiltViewModel()
) {
// ... (MainScreen code as provided) ...
}

@Composable
fun AnalyticsBox(icon: Int, number: Int, label: String) {
Log.d("AnalyticsBox", "Number: $number, Label: $label")

Column(
modifier = Modifier
.background(TealLight, RoundedCornerShape(8.dp))
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Icon(painter = painterResource(id = icon), contentDescription = label)
Text(text = if (number == 0) "0" else number.toString())
Text(text = label)
}
}

@Composable
fun HabitListItem(habit: Habit, onEditHabitClick: (Habit) -> Unit, viewModel: HabitViewModel) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp)
.background(TealLight, RoundedCornerShape(8.dp))
.padding(16.dp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
Column {
Text(text = habit.name) // Text disappears when styled
Text(text = habit.description) // Text disappears when styled
Text(text = "@ ${habit.reminderDateTime}") // Text disappears when styled
}
Button(onClick = { viewModel.completeHabit(habit) }) {
Text("Complete")
}
}
}

Подробная информация о проблеме:

[*] Когда я применяю typography.bodymed.copy (color = black) или пользовательский текстовый стиль к тексту composables в Analyticsbox и привычка , текстовый текст разочаровывает текст. /> Текст отображается правильно без какого -либо стиля.
[*] Текст цитаты в основном экране рендерирует с одной и той же типографикой .
[*] Я пробовал различный текстовый стиль , но возникает проблема. Текст:

Код: Выделить всё

Text(
text = habit.name,
style = TextStyle(
fontWeight = FontWeight.Medium,
fontSize = 15.sp,
lineHeight = 17.sp,
letterSpacing = 0.5.sp
)
)
Ожидаемое поведение:
Я ожидаю текста в Analyticsbox и DabiveListem для рендеринга с помощью прикладных стилей, аналогично тому, как текст цитаты


исчезнуть, когда я применяю стиль в Analyticsbox и DabiveListItem ?
Есть ли конкретное ограничение или проблема с тем, как сочинять стилирование в этих компонентах? Упрощение типографии и проверено на проблемы с загрузкой шрифтов, но проблема сохраняется. Любое понимание или решения будут высоко оценены.

Подробнее здесь: https://stackoverflow.com/questions/795 ... sappers-fr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»