我在屏幕上有一个可组合项,其中显示了跟踪项目(收藏夹)的列表:
var favourites: MutableList<Track> by mutableStateOf(mutableListOf())
Run Code Online (Sandbox Code Playgroud)
@ExperimentalFoundationApi
@Composable
private fun ResultList(model: FreezerModel) {
with(model) {
if (favourites.isEmpty()) NoDataMessage("No favourites yet")
else {
LazyColumn(state = rememberLazyListState()) {
items(favourites) {
TrackCard(it, model)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在点击事件中,我正在更新我的收藏夹列表(添加/删除项目)。如何让我的可组合项立即反映这些更改(例如重新绘制自身或类似的东西)?到目前为止,它仅在我第一次切换到另一个屏幕时才有效。
感谢您的投入!
比较两个产品时遇到问题。我希望比较它们各自的vintage(可选)属性。但是只要此属性为null,就会引发NPE。我以为我可以使用Comparator.nullsLast(..)处理null值...但是似乎我对它的工作方式有误解,或者代码有问题。我需要更改什么才能使这项工作对null友好?
@Override
public int compare(IProduct product1, IProduct product2) throws ProductComparisonException {
Comparator<IShopProduct> comparator =
Comparator.nullsLast(Comparator.comparing(IShopProduct::getVintage));
return comparator.compare((IShopProduct)product1.getProvidedProductData(),
(IShopProduct)product2.getProvidedProductData());
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
我想使用PHP 7的一些功能,但我有点挣扎.
我有一个Symfony-Project使用Doctrine来映射一些实体.PHP 7中的新功能是GROUP USE-Statemens,我想尝试一下.但似乎我做错了,因为Symfony/Doctrine无法解析实体对象中的注释.
使用-声明:
use Doctrine\ORM\Mapping\{Entity, Id, Table, Column, GeneratedValue, JoinColumn, OneToOne, ManyToMany, JoinTable};
Run Code Online (Sandbox Code Playgroud)
实体
/**
* @Entity
* @Table(name="expansion")
*/
class Expansion {
..
}
Run Code Online (Sandbox Code Playgroud)
例外
[Semantical Error] The annotation "@Entity" in class AppBundle\Entity\Expansion was never imported. Did you maybe forget to add a "use" statement for this annotation?
Run Code Online (Sandbox Code Playgroud)
如果我使用单个USE语句,导入工作完美...
我究竟做错了什么?版本是正确的.此外,PHPStorm表示从未使用过'Alias XY'.
感谢您的支持!
我有一个音乐播放器应用程序 - 在我的屏幕上,我有显示曲目信息的卡片。当我点击一张卡片时,播放器应该播放它的曲目。
@Composable
fun TrackCard(track: Track) {
Card(
modifier = Modifier.padding(5.dp).fillMaxWidth(),
contentColor = Color.Black
) {
Column(modifier = Modifier.padding(10.dp)) {
ArtistName(text = track.artist.name)
Headline(text = track.title)
AlbumName(text = track.album.title)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我加入了试了一下Clickable它Modifier是这样的:clickable(onClick = {})
为了让赛道玩,我需要另一个参数有关我TrackCard,播放器本身。由于我想将 UI 代码分开,我想知道是否可以添加一个事件侦听器并从那里访问播放曲目?(此外,我还想捕捉不同类型的事件,例如长按触摸等,以进行不同的事件处理)
跟踪卡像这样初始化:
@Composable
private fun ResultList(model: PlayerModel) {
with(model) {
LazyColumn(state = rememberLazyListState()) {
items(tracks) {
TrackCard(it)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何做到这一点?
我有以下内容:
List<String> keys
List<String> values
Run Code Online (Sandbox Code Playgroud)
我想将这两个列表映射到Map<String, String>使用Java 8 Streams.列表具有相同的大小并以相同的方式排序.
我尝试用以下方法映射这两个
Map<String, String> result= keys.stream().
collect(Collectors.toMap(keys::get, values::get));
Run Code Online (Sandbox Code Playgroud)
但这根本不起作用 - 我怎么能这样做呢?提前致谢 :)
我有一个产品清单.每种产品都有另一份成分清单.我如何使用Streams来获取所有产品的所有成分列表?
products.stream()
.map(Product::getIngredients())
.filter(i -> !i.isEmpty())
.distinct()
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
就我的代码而言,到目前为止,我只是得到一个包含子列表的列表...
这样做的正确方法是什么?
非常感谢!
java ×3
android ×2
java-stream ×2
kotlin ×2
list ×2
collectors ×1
comparable ×1
comparator ×1
doctrine-orm ×1
hashmap ×1
java-8 ×1
listview ×1
php-7 ×1
symfony ×1