在 Android 版 Jetpack Compose 中,您可以执行以下操作:
val fontFamily = FontFamily(
Font(
resId = R.font.my_font_400_regular,
weight = FontWeight.W400,
style = FontStyle.Normal
),
Font(
resId = R.font.my_font_400_italic,
weight = FontWeight.W400,
style = FontStyle.Italic
)
)
Run Code Online (Sandbox Code Playgroud)
但对于桌面版,文件结构不同,我无法访问,R.font.my_font_400_regular
因为“R”是 Android 资源功能。
我有一个组件,它以 100 毫秒的间隔“延迟加载”一些评论。
当我使用 setTimeout 时,它真的很滞后。
成分
<div *ngFor="let post of posts">
<app-post [post]="post" ></app-post>
</div>
Run Code Online (Sandbox Code Playgroud)
这使我的应用程序滞后(平均 fps 14,空闲时间 51100 毫秒):
while(this.postService.hasPosts()){
setTimeout(()=> {
this.posts.push(this.postService.next(10));
},100);
}
Run Code Online (Sandbox Code Playgroud)
这使我的应用程序流畅(平均 fps 35,空闲时间 40800 毫秒)
<div *ngFor="let post of posts">
<app-post [post]="post" ></app-post>
</div>
Run Code Online (Sandbox Code Playgroud)
有什么解释,为什么 rxjs 计时器工作得更好?
我用 Firefox 做了一个运行时分析。在第一个示例中,帧速率降至 14 fps。在另一个示例中,帧速率降至 35 fps。
甚至空闲时间也减少了 20%。
这个方法更流畅(平均fps 45,空闲时间13500ms):
while(this.postService.hasPosts()){
setTimeout(()=> {
this.posts.push(this.postService.next(10));
},100);
}
Run Code Online (Sandbox Code Playgroud) 我很难掌握 http Observables 的工作方式。
Http get 总是完成,当只有一个值到达但无法查找实现时。它们是否总是在错误或值到达后完成?
我和我的同事讨论了很多,因为在每个http操作中使用以下程序:
const sub = this.http.get( enviroment.baseUrl + '/users').pipe(take(1))
.subscribe( value => {
//do something with the value
},
error => consol.log(error.message));
Run Code Online (Sandbox Code Playgroud)
后来这个:
ngOndestroy():void{
sub.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
据我所知,pipe(take(1))
不需要,因为 http 调用总是发出一个值。
响应或错误。
并且由于 observable 以一个值完成,因此不需要取消订阅。
如果我穿了,请纠正我。如果你有一些想法,我也很高兴能有官方消息来源。
非常感谢您提前
angular ×2
rxjs ×2
typescript ×2
android-jetpack-compose-text ×1
httpclient ×1
javascript ×1
kotlin ×1