我想使用 AWS CDK 在 AWS 上部署 NextJS 进行 POC,并且正在寻找选项。在 NextJS 文档中,它说我们只需创建一个实例并运行npm run build && npm start,它就会为我们启动服务。然而,这并不是最优化的部署方式。
我如何使用 AWS 做同样的事情?如何通过 Cloudfront CDN 提供静态资产和页面,以及如何通过 Lambda 或 ECS 提供服务器端呈现的页面和 API?是否有我可以遵循的分步指南来拆分相同的构建文件?
任何使用 AWS CDK 本地执行此操作的指示都会有所帮助。谢谢。
我的屏幕上有几个可聚焦的电视小部件。
我的代码:
@Composable
fun DefaultFocusSample(){
Row(Modifier.padding(100.dp)) {
FocusBox("Box01")
Spacer(modifier = Modifier.padding(10.dp))
FocusBox("Box02")
Spacer(modifier = Modifier.padding(10.dp))
FocusBox("Box03")
Spacer(modifier = Modifier.padding(10.dp))
FocusBox("Box04")
}
}
@Composable
fun FocusBox(text:String){
var color by remember { mutableStateOf(White) }
Box(
Modifier
.onFocusChanged {
color = if (it.isFocused) Green else White }
.focusable()
.border(2.dp,color)
){
Text(text = text,
modifier = Modifier.padding(10.dp))
}
}
Run Code Online (Sandbox Code Playgroud) android kotlin android-tv android-jetpack-compose android-jetpack-compose-tv
我正在尝试创建一个布局,其中 a 中的第一列和最后一列div是粘性的。当我滚动一定数量时,最左边的列超出了左侧限制。为什么会发生这种情况以及如何解决它?
当您滚动到最右侧时,您可以看到红色列跳出框。
示例代码笔:https://codepen.io/vighnesh-google/pen/WNzjvqN
示例代码:
.slider {
width: 100%;
position: relative;
overflow: auto;
}
.header,
.body {
display: flex;
}
.item {
width: 20%;
height: 100px;
background: yellow;
border: 1px solid black;
flex-grow: 0;
flex-shrink: 0;
}
.sticky-item-left {
position: sticky;
left: 0;
background: red;
}
.sticky-item-right {
position: sticky;
right: 0;
background: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="slider">
<div class="header">
<div class="item sticky-item-left"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div> …Run Code Online (Sandbox Code Playgroud)我正在尝试实现一个 TVLazyRow,当我们关注该行上方其他可组合项的行时,它必须始终首先关注第一个项目。目前,按下时,焦点将转到行中位于上面可组合项正下方的项目。我怎样才能实现这种行为?
这是我的代码以获取更多上下文:
val tvListState = rememberTvLazyListState()
val coScope = rememberCoroutineScope()
TvLazyRow(
horizontalArrangement = Arrangement.spacedBy(15.dp),
state = tvListState,
modifier = modifier
.fillMaxHeight()
.padding(end = 5.dp)
.onFocusChanged {
if (it.isFocused) {
coScope.launch {
tvListState.scrollToItem(0)
}
}
}, pivotOffsets = PivotOffsets(0f)
) { *items* }
Run Code Online (Sandbox Code Playgroud) android-tv android-jetpack android-jetpack-compose android-jetpack-compose-tv
我正在使用jetpack compose for tv 库TvLazyRow中的可组合项,并使用PivotOffsets将焦点项目定位在行中的固定位置。
当我将行滚动到最后时,不遵守固定位置值,并且可聚焦的项目会转到最后。
即使滚动到末尾或开头,如何保持位置固定?
观察到的行为:
期望的行为:
android-tv android-jetpack-compose android-jetpack-compose-tv
你好 Stack Overflow 社区,
我目前正在使用 Jetpack Compose 开发 Android TV 应用程序,但遇到了一个我似乎无法找到解决方案的问题。
在传统的 Android 开发中,我可以轻松地使用 AudioManager 类来处理系统声音。然而,随着过渡到 Jetpack Compose,我不知道如何做同样的事情。
这是我在传统视图系统中使用的典型方法:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.playSoundEffect(Sounds.DISMISS);
Run Code Online (Sandbox Code Playgroud)
如何在 Jetpack Compose 中实现同等功能?任何帮助将不胜感激。如果需要任何其他信息,我非常乐意提供。
先感谢您。
(它不起作用:)
<resources>
<style name="Theme.xxx" parent="android:Theme.Material.Light.NoActionBar">
<item name="android:soundEffectsEnabled">true</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud) android android-tv android-jetpack android-jetpack-compose android-jetpack-compose-tv
我正在尝试在现有的 AndroidTV 应用程序中使用 Jetpack Compose。我需要制作一个带有麦克风图标的按钮,如果它聚焦,它的颜色就会改变。像这样^
不专心
专注
这是我的 ComposeView
<androidx.compose.ui.platform.ComposeView
android:id="@+id/micBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
这是我的片段中的代码
binding.micBtn.setContent {
var buttonResId by remember { mutableStateOf(R.drawable.speech_recognition_button_unfocused) }
IconButton(
modifier = Modifier
.size(60.dp)
.onFocusChanged {
buttonResId = if (it.isFocused) {
R.drawable.speech_recognition_button_focused
} else {
R.drawable.speech_recognition_button_unfocused
}
},
onClick = onClick,
) {
Icon(
painter = painterResource(id = buttonResId),
contentDescription = null,
tint = Color.Unspecified,
)
}
}
Run Code Online (Sandbox Code Playgroud)
看起来不错,对吧?问题是,当我尝试关注此按钮时,焦点首先转到AndroidComposeView项目(根据我的GlobalFocusListener)。只有我的第二个操作(单击、方向键导航)才能使我的内容集中。
所以,出于某种原因,内部AndroidComposeView窃取了我的注意力Content
有什么办法可以防止这种行为吗?我只需要关注我的内容,而不是AndroidComposeView包装。
android android-tv android-jetpack-compose android-jetpack-compose-tv
compose_version = '1.0.0-beta02'。
我可以通过 FocusRequester 设置焦点状态 TextField,但 Button 不能。
val requester1 = FocusRequester()
TextField(value = text1,
{ newValue ->
text1 = newValue
},
modifier = Modifier
.focusable(true)
.focusRequester(requester1)
.background(focusedColor1)
.onFocusChanged {
focusedColor1 = if (it.isFocused) {
text1 = "TextField1 focused"
Color.Red
} else {
text1 = "TextField1 unfocused"
Color.Green
}
}
)
Run Code Online (Sandbox Code Playgroud)
将调用 TextField 的“onFocusChanged”方法。
val requester3 = FocusRequester()
Button(
onClick = {
requester3.requestFocus()
},
modifier = Modifier
.focusModifier()
.focusable(true)
.focusRequester(requester3)
.onFocusEvent {
Toast
.makeText(
context,
"Button onFocusEvent it.isFocused:${it.isFocused}. ${it.name}", …Run Code Online (Sandbox Code Playgroud) android android-tv android-jetpack-compose android-compose-button android-jetpack-compose-tv