我对blob URL有很多问题.
我src在YouTube上搜索视频标签,我发现该视频src如下:
src="blob:https://crap.crap"
Run Code Online (Sandbox Code Playgroud)
我打开了src视频中的blob URL,它给出了一个错误,我无法打开,但正在处理src标签.这怎么可能?
要求:
如何从 Compose Color 转换为 Android Color Int?
我目前正在使用这段代码,它似乎有效,我似乎找不到一个函数来获取颜色的 Int 值
Color.rgb(color.red.toInt(), color.green.toInt(), color.blue.toInt())
Run Code Online (Sandbox Code Playgroud)
其中Color.rgb是一个返回整数颜色的函数android.graphics.Color,而颜色变量只是一个 Compose Color !
由于float需要更高的API
链接:如何将 android.graphics.Color 转换为 androidx.compose.ui.graphics.Color
有人问过同样的问题,但它们对我不起作用,一开始我使用的是最新版本的工作管理器,即 2.7 alpha 3,但我降级了,因为它只兼容 android 12 预览版 sdk,错误仍然存在!
它无法实例化工作人员,因为这些依赖项包含在工作人员的构造函数中,在我添加它们之前它就可以工作,但如果我无法添加它们,则刀柄没有任何好处,所以情况如下:
Manifest 不包含任何与工作管理器相关的配置!
应用类别:
@HiltAndroidApp
class TimelineApp : Application() ,Configuration.Provider{
@Inject
lateinit var workerFactory: HiltWorkerFactory
override fun getWorkManagerConfiguration() =
Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}
Run Code Online (Sandbox Code Playgroud)
工人:
@HiltWorker
class DriveSyncWorker @AssistedInject constructor(
@Assisted val context: Context,
@Assisted workerParams: WorkerParameters,
val dependency: StorageHelper,
)
Run Code Online (Sandbox Code Playgroud)
注意到:它没有使用 HiltWorkFactory !
错误:
E/WM-WorkerFactory: Could not instantiate com.wakaztahir.timeline.utils.workers.DriveSyncWorker
java.lang.NoSuchMethodException: com.wakaztahir.timeline.utils.workers.DriveSyncWorker.<init> [class android.content.Context, class androidx.work.WorkerParameters]
at java.lang.Class.getConstructor0(Class.java:2332)
at java.lang.Class.getDeclaredConstructor(Class.java:2170)
at androidx.work.WorkerFactory.createWorkerWithDefaultFallback(WorkerFactory.java:95)
at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:244)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:136)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at …Run Code Online (Sandbox Code Playgroud) 我知道没有blob网址只有对象.
我为视频缓冲区创建了自己的blob对象,然后在视频标记的src中使用它,类似于blob://website.com/blablobbla.我在它工作的浏览器中打开了这个url
当我打开youtube视频src(blob url)的url到一个新标签时,它没有用,但是我的视频src(blob url)工作了
我想知道如何对我的blob网址执行相同操作,以便它们只能在html视频标记的src中工作,并且在浏览器的外部选项卡/窗口中发出错误或不起作用.我只是想知道这个和blob对象及其url属性背后的技术.
我想在待办事项列表中创建一个文本字段when the user presses backspace on an empty text field , it removes itself,如您所见,非常简单!
如果按键事件是可编辑的,则 Jetpack Compose 和 Core Text Field 不会将其按键事件传播到父可组合项/修饰符 ~~ 在其代码中编写
所以我尝试了这个,但它没有按预期工作
Modifier.onKeyEvent {
Log.d("BL_KeyEvent",it.type.toString())
if (it.key.keyCode == Key.Backspace.keyCode) {
if (item.text.isEmpty()) {
onBackspaceRemove()
}
}
false
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道如何实现它,因为 CoreTextField 是内部的,我无法捕获文本字段中的关键事件
android android-jetpack-compose android-jetpack-compose-list
在右侧,我有一个可组合项中的项目列表,每个项目都位于一行内,所有项目都位于一列内
所有的子项都被剪裁以适应我不想要的屏幕,我希望这些项目即使在屏幕之外也能完全渲染,因为我在它们上面有一个可缩放的容器
正如您所看到的,文本字段中的文本如何垂直排列在一行而不是扩大宽度,这就是问题所在
代码 :
Row(
modifier = modifier.zIndex(3f),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Center,
) {
SimpleNodesList(
modifier = Modifier.padding(8.dp),
parentNode = state.center,
nodes = state.center.left,
renderRight = false,
)
SimpleNode(node = state.center, parentNode = null)
SimpleNodesList(
modifier = Modifier.padding(8.dp),
parentNode = state.center,
nodes = state.center.right,
renderLeft = false
)
}
Run Code Online (Sandbox Code Playgroud)
简单节点列表是一列行,我左边一列,右边一列,如果左列的宽度增加,右行就会被屏幕剪掉
问题:TextField(在惰性列内)文本位于键盘下方
解释 :
我有一个 LazyColumn,其中包含显示文本字段的项目列表,在清单中活动有windowSoftInputMode="adjustResize",我还在WindowCompat.setDecorFitsSystemWindows(window,false)setContent 之前的 onCreate 方法中设置标志 ,我想让文本始终出现在键盘上方以获得更流畅的编辑体验!
使用提供 Window Insets 的 Accompanist Library 为 Box 提供填充,如下所示
Box(modifier = Modifier.weight(1f).navigationBarsWithImePadding()){
LazyColumn() {
items(myItems) { item->
ItemComposable(item)
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,盒子上有 navigationBarsWithImePadding,但它不起作用,因为文本位于键盘下方,我尝试在 LazyColumn 上设置修饰符,但随后它提供了 LazyColumn 相对于框外其他项目的填充!
所以我试过了 contentPadding
LazyColumn(contentPadding=insets.ime.toPaddingValues(additionalBottom=insets.navigationBars.bottom.dp)) {
items(editor.blocks) { block ->
RenderBlock(block)
}
}
Run Code Online (Sandbox Code Playgroud)
再次不起作用,因为内容填充应用于最后一项/或其后,键盘位于文本上方
用简单的 Column 替换 LazyColumn 并使用verticalScroll修饰符会导致同样的问题,因为列表可以长垂直滚动成为需要
我知道 eval 是 PHP 中从输入执行 PHP 代码的函数。现在我想做一个类似W3Schools的编辑器。我可以做什么来保护从 POST 变量获得的 eval 代码。
$code = eval($_POST["phpusercode"]);
echo $code;
Run Code Online (Sandbox Code Playgroud)
我想做的是当用户创建这样的功能时
我想让用户能够在我的网站上编写自己的 PHP 代码,而不会让我的网站容易受到某种黑客攻击。
大家好。所以,最近我将 Android Studio 版本更新到了 4.1(最新版本)。我想像平常一样添加矢量资源,但是..不知何故..图标的预览没有显示。我无法选择矢量资源,甚至无法添加矢量资源。有没有什么办法解决这一问题?或者也许有一种降级版本的方法?太感谢了 :(
android xml-drawable android-studio android-vectordrawable android-studio-4.1
android ×5
android-jetpack-compose-list ×2
blob ×1
bloburls ×1
dagger-hilt ×1
eval ×1
fileapi ×1
html5-video ×1
javascript ×1
media-source ×1
php ×1
security ×1
url ×1
user-input ×1
xml-drawable ×1