小编Waq*_*hir的帖子

什么是blob URL以及为何使用它?

我对blob URL有很多问题.

src在YouTube上搜索视频标签,我发现该视频src如下:

src="blob:https://crap.crap"
Run Code Online (Sandbox Code Playgroud)

我打开了src视频中的blob URL,它给出了一个错误,我无法打开,但正在处理src标签.这怎么可能?

要求:

  • 什么是blob网址?
  • 为什么用它?
  • 我可以在服务器上创建自己的blob URL吗?
  • 如果您有任何其他详细信息

html5-video bloburls

272
推荐指数
4
解决办法
21万
查看次数

如何将 androidx.compose.ui.graphics.Color 转换为 android.graphics.Color (int)

如何从 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

android android-jetpack-compose

40
推荐指数
2
解决办法
2万
查看次数

使用 Hilt 注入 CoroutineWorker:无法实例化woker

有人问过同样的问题,但它们对我不起作用,一开始我使用的是最新版本的工作管理器,即 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)

android android-workmanager dagger-hilt

16
推荐指数
2
解决办法
8660
查看次数

Youtube Blob网址在浏览器中不起作用,但在src中不起作用

我知道没有blob网址只有对象.
我为视频缓冲区创建了自己的blob对象,然后在视频标记的src中使用它,类似于blob://website.com/blablobbla.我在它工作的浏览器中打开了这个url

当我打开youtube视频src(blob url)的url到一个新标签时,它没有用,但是我的视频src(blob url)工作了

我想知道如何对我的blob网址执行相同操作,以便它们只能在html视频标记的src中工作,并且在浏览器的外部选项卡/窗口中发出错误或不起作用.我只是想知道这个和blob对象及其url属性背后的技术.

javascript url blob fileapi media-source

14
推荐指数
2
解决办法
8166
查看次数

Jetpack Compose - 在文本字段中捕获关键事件

我想在待办事项列表中创建一个文本字段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

10
推荐指数
1
解决办法
6216
查看次数

Jetpack Compose - 当宽度增加时行剪切子项

在右侧,我有一个可组合项中的项目列表,每个项目都位于一行内,所有项目都位于一列内

所有的子项都被剪裁以适应我不想要的屏幕,我希望这些项目即使在屏幕之外也能完全渲染,因为我在它们上面有一个可缩放的容器

正如您所看到的,文本字段中的文本如何垂直排列在一行而不是扩大宽度,这就是问题所在

在此输入图像描述

代码 :

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)

简单节点列表是一列行,我左边一列,右边一列,如果左列的宽度增加,右行就会被屏幕剪掉

android-jetpack-compose android-jetpack-compose-list

7
推荐指数
1
解决办法
1万
查看次数

LazyColumn 中的 TextField IME 填充,撰写

问题: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修饰符会导致同样的问题,因为列表可以长垂直滚动成为需要

android android-jetpack-compose

6
推荐指数
1
解决办法
244
查看次数

PHP 中的评估和安全措施,创建 PHP 演示编辑器

我知道 eval 是 PHP 中从输入执行 PHP 代码的函数。现在我想做一个类似W3Schools的编辑器。我可以做什么来保护从 POST 变量获得的 eval 代码。

$code = eval($_POST["phpusercode"]);
echo $code;
Run Code Online (Sandbox Code Playgroud)

我想做的是当用户创建这样的功能时

我想让用户能够在我的网站上编写自己的 PHP 代码,而不会让我的网站容易受到某种黑客攻击。

php security user-input eval

5
推荐指数
1
解决办法
2130
查看次数

当我尝试在 Android Studio 中插入新的矢量资源时,“没有任何内容可显示”

“无内容可显示”错误 - 矢量资源

大家好。所以,最近我将 Android Studio 版本更新到了 4.1(最新版本)。我想像平常一样添加矢量资源,但是..不知何故..图标的预览没有显示。我无法选择矢量资源,甚至无法添加矢量资源。有没有什么办法解决这一问题?或者也许有一种降级版本的方法?太感谢了 :(

android xml-drawable android-studio android-vectordrawable android-studio-4.1

5
推荐指数
1
解决办法
2462
查看次数