小编Jef*_*hen的帖子

如何制作"仅图像"浮动动作按钮

我的图像如下.

在此输入图像描述

当我用它来制作浮动动作按钮时,按钮看起来像这样.

在此输入图像描述

我不想要粉红色的边缘.我只想要显示我的图像.我该怎么办?

我还希望我的图像的大小是外圈而不是内圈.

这是我的代码:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_refresh" />
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

Kotlin 协程启动{} 与启动{ withContext{} }

我的 Android 应用程序需要在后台(在服务内)执行一些文件读/写操作,首先我使用:

CoroutineScope(Dispatchers.IO).launch {
    val fos = openFileOutput(fileName, MODE_PRIVATE)
    val oos = ObjectOutputStream(fos)
    oos.writeObject(myObj)
    oos.close()
}
Run Code Online (Sandbox Code Playgroud)

块内的每一行都有一个警告:“不适当的阻塞方法调用”

搜索完问题后,我想我明白了80%。所以基本上大多数协程只有 1 个线程,如果它被阻塞,那么该协程将没有线程去做其他工作。为了解决这个问题,我们应该withContext像这样把它包裹起来:

CoroutineScope(Dispatchers.IO).launch {
    withContext(Dispatchers.IO) {
        val fos = openFileOutput(fileName, MODE_PRIVATE)
        val oos = ObjectOutputStream(fos)
        oos.writeObject(myObj)
        oos.close()
    }
}
Run Code Online (Sandbox Code Playgroud)

Android Studio 仍然显示警告。帖子说这只是Android Studio中的一个错误,这个解决方案很好。

我不明白的是,withContext仍然在运行Dispatchers.IO。从launch块来看,它可能看起来像非阻塞,但如果Dispatchers.IO只有 1 个线程并且withContext块在该线程上运行,那么该线程仍然被阻塞,不是吗?

我还了解到Dispatchers.IO实际上有无限的线程,它只是在需要时创建一个新线程。所以withContext实际上并没有阻塞,但如果这是真的,为什么我们需要阻塞呢withContext?如果可以在需要时创建线程,因此第一个代码不会有任何问题,Dispatchers.IO因此永远不会被阻塞,对吗?

multithreading android kotlin kotlin-coroutines

9
推荐指数
2
解决办法
7573
查看次数

打字稿承诺&lt;MyClass | undefined&gt; 不返回可选变量

我有一个基本上像这样的功能

function foo(): Promise<MyClass | undefined> {
    if(somethingGoesWrong) {
        return Promise.resolve(undefined);
    }
    return Promise.resolve(new MyClass());
}
Run Code Online (Sandbox Code Playgroud)

在函数之外,我称之为

const x = await foo()
Run Code Online (Sandbox Code Playgroud)

问题是我的 VSCode IDE 不会将 x 视为MyClass | undefined. 就这样吧MyClass

我不知道这是一个IDE问题还是有诸如“Promise无法解析未定义”之类的规则。

我知道更好的方法可能是抛出一些错误而不是返回未定义,我只是想知道为什么这不起作用或似乎不起作用。

undefined promise typescript visual-studio-code

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

Binance API速率限制中的RAW_REQUESTS是什么

返回/api/v3/exchangeInfo以下速率限制

在此输入图像描述

币安文档说:

与 /api/* 相关的端点:

  • 根据IP和UID(账号)限制两种模式,各自独立。
  • 端点基于 IP 共享每分钟 1200 个限制,不包括新订单端点 POST /api/v3/order,该端点具有每 10 秒 50 个和基于 UID 每天 160000 个的具体限制。
  • 响应包含标头 X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter),定义当前 IP 使用的权重。
  • 成功的订单响应包含标头 X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter),定义 UID 使用的订单限制。

因此,以 开头的标头与X-MBX-USED-WEIGHT-相关rateLimits[0],以 开头的标头与和X-MBX-ORDER-COUNT-相关。rateLimits[1]rateLimits[2]

关于什么rateLimits[3]?我该如何实施?

binance binance-api-client

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

UIScrollView 的 contentOffset 在 vi​​ewDidLayoutSubviews 之后重置

我覆盖viewDidLayoutSubviews并设置contentOffset我的UIScrollview. 但contentOffset之前总是重置为(0, 0) viewDidAppear。我打印contentOffsetviewWillAppear, viewDidLayoutSubviews, viewDidAppear。这是结果。

view will appear
(0.0, 0.0)
view did layout subviews
(-37.5, -133.5)
view did appear
(0.0, 0.0)
Run Code Online (Sandbox Code Playgroud)

contentOffset我想在变得可见之前设置UIScrollView

我尝试过self.automaticallyAdjustsScrollViewInsets = false,但不行。

uiscrollview ios swift

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

如何使用 IBInspectable 数据制作自定义转场

我已经IBInspectable在我的 custom 中使用过UIViewController,并且有效,我可以修改界面构建器中的值。

但是,当我IBInspectable在 custom 中使用时UIStoryboardSegue,它不起作用,我在界面构建器中看不到变量。

是不可能IBInspectable在 a 中使用UIStoryboardSegue,还是我做错了什么?

这是我的代码。

class EmbedSegue: UIStoryboardSegue {
    @IBInspectable var childLevel = 0
    override func perform() {
        var container:ContainerVC?
        if childLevel == 0 {
            container = source as? ContainerVC
        } else if childLevel > 0 {
            var target:UIViewController? = source
            for _ in 0..<childLevel {
                target = target?.children.first
                if target == nil {
                    break
                }
            }
            container = target as? ContainerVC
        } …
Run Code Online (Sandbox Code Playgroud)

xib ios swift

5
推荐指数
0
解决办法
114
查看次数

onCreate 会在 onStop 之后调用,中间没有 onDestroy

onCreate 会在 onStop 之后调用,中间没有 onDestroy 吗?

从下图来看,答案是肯定的。

活动生命周期

但在同一页面中,它说:

protected void onStop()
当您不再对用户可见时调用。接下来,您将收到 onRestart()、onDestroy() 或什么都不收到,具体取决于以后的用户活动。

即使用户离开另一个应用程序或关闭屏幕,我的应用程序也需要运行后台任务。应该停止任务的唯一情况是应用程序完全关闭。所以我创建并运行后台线程onCreate()并在onDestroy(). 我面临的问题是有时同时运行多个线程。当我离开我的应用程序很长时间然后再回来时,经常会发生这种情况。我认为这可能是由于多次调用onCreate(). 如何解决?

multithreading android

2
推荐指数
1
解决办法
2322
查看次数