如何最好地实现以下内容:我需要在智能手机上显示常规窗口,并在平板电脑上显示相同的窗口作为弹出对话框。在不同的地方有几个这样的窗户。哪个更正确:
Navigator.pushNamed(),在方法中捕获路由onGenerateRoute,创建自定义路由器类并确定从中显示哪个选项,或者Navigator.pushNamed(),showDialog但这样命名路由的含义就会丢失。我有这个解码content://URI的代码:
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(contentUri,
new String[] { MediaStore.Files.FileColumns.DATA },
null, null, null);
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA);
cursor.moveToFirst();
return cursor.getString(columnIndex);
} finally {
if (cursor != null) {cursor.close()};
}
Run Code Online (Sandbox Code Playgroud)
但它不适用于FileProviderURI(例如下载文件的 Chrome Dev URI:)content://com.chrome.dev.FileProvider/downloads/。有没有办法获得真正的路径?
是否可以以编程方式隐藏或关闭窗口(而不是最小化),但仍保持进程处于活动状态?这类似于Qt 中的hide()/show()方法,这是最小化应用程序到托盘的标准方法。
我用来LazyVerticalGrid创建一个具有 96 dp 列的响应式网格,它看起来像这样:
LazyVerticalGrid(
columns = GridCells.Adaptive(96.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
) {
Card {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
) {
Card {...}
Text(title)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但存在一个问题:由于文本换行,卡片内容可能具有不同的高度,并且卡片之间存在负空间(用红色箭头标记)。哪些解决方案可以在 Compose 中实现而无需创建自定义布局?
这是一个Row,它在里面ListView。里面有一个Column带Text小部件、前导和尾随小部件。问题是前导小部件必须填充Row. 该Row高度由所确定的Column与所述Text窗口小部件,和前端小部件应调整到这个大小,而不是试图增加Row高度为无穷大(例如,领先的插件可以是着色的Container具有无限的高度和给定的宽度)。是否有可能做到这一点?