小编And*_*ner的帖子

Android 自定义 SeekBar - 进度不跟随拇指

我想创建一个自定义的 SeekBar,但是我遇到了这个问题,即在某些地方(大约 0-10 和 90-100 的进度值)进度没有跟随 SeekBar 的拇指。我相信这是因为我将 设置thumbOffset为 0,以便拇指留在进度条内。我想做一个 iPhone 风格的 SeekBar。

进度0处的 SeekBar (可以):

在此处输入图片说明

进度5处的 SeekBar (不正常):

在此处输入图片说明

进度50处的 SeekBar (可以):

在此处输入图片说明

进度90处的 SeekBar (不正常):

在此处输入图片说明

进度为100 时的SeekBar (可以):

在此处输入图片说明

thumbOffset在根据拇指位置绘制进度时,似乎没有考虑 。我尝试将其更改为thumbOffset拇指宽度的一半,并使用不同的填充进行了各种组合,但没有解决问题。我还尝试了在 SO 上找到的所有其他解决方案。

这是我正在使用的 XML:

SeekBar 定义:

<SeekBar
    android:id="@+id/scan_seekbar"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:max="100"
    android:progress="5"
    android:progressDrawable="@drawable/bg_seekbar"
    android:splitTrack="false"
    android:thumbOffset="0dp"
    android:thumb="@drawable/seekbar_thumb" />
Run Code Online (Sandbox Code Playgroud)

可绘制bg_seekbar.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <size android:height="48dp"/>
            <corners android:radius="25dp"/>
            <stroke …
Run Code Online (Sandbox Code Playgroud)

android seekbar android-seekbar seekbar-thumb

9
推荐指数
1
解决办法
1514
查看次数

Task.Delay没有被取消?

我正在尝试为游戏构建界面.游戏运行1分钟.该GetStop方法后60秒游戏停止.该游戏方法在游戏开始时和退出方法退出游戏.理想情况下,我想要的是当我在30秒后退出游戏时,计时器应该重置,点击"播放"按钮,计时器应该再次运行1分钟.这样下一场比赛就可以运行1分钟.如果我再次按退出按钮,则应重置计时器以进行下一场比赛.

但是,我的代码中似乎存在某个问题.每当我执行quit方法时,计时器似乎都保存在该状态.所以,如果我在30秒内退出比赛,那么下一场比赛将持续30秒.如果我在50秒内退出比赛,下一场比赛将只持续10秒.理想情况下,计时器应该重置但不会重置.

我在这里没有想法.任何人都可以提供一些建议?

private async Task GetStop(CancellationToken token)
{ 
    await Task.Run(async () =>
    {
        token.ThrowIfCancellationRequested();
        await Task.Delay(TimeSpan.FromSeconds(60), token);

        token.ThrowIfCancellationRequested();
        if (!token.IsCancellationRequested)
        {
            sendMessage((byte)ACMessage.AC_ESCAPE); 
        }
    }, token);
}

public async void Play()
{         
        sendMessage((byte)ACMessage.AC_START_RACE); 
        _cts.Cancel();

        if (_cts != null)
        {
            _cts.Dispose();
            _cts = null;
        }
        _cts = new CancellationTokenSource(); 
        await GetStop(_cts.Token);
   }

public void Quit()
{
        _cts.Cancel();
        if (_cts != null)
        {
            _cts.Dispose();
            _cts = null;
        }
    //
}
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library cancellation cancellationtokensource

8
推荐指数
1
解决办法
285
查看次数

进入蜂窝电话时保持呼叫套件呼叫

我有一个问题(但不是真的)与callkit.

我在我的应用程序中实现了callkit,它运行良好.我可以第二次打电话给我的应用程序和callkit,向我提供结束和接受,拒绝或保留和接受的选项.如果我正在进行蜂窝电话(gsm)呼叫并且我在我的应用上接听电话也是如此.但是当我在应用程序调用(在callkit上)并获得蜂窝(gsm)调用时,我只获得2个选项:拒绝或结束并接受.

知道为什么吗?或者我如何获得所有3个选项?

static var providerConfiguration: CXProviderConfiguration {

    var providerConfiguration: CXProviderConfiguration
    providerConfiguration = CXProviderConfiguration(localizedName: "app name")

    providerConfiguration.supportsVideo = false
    providerConfiguration.maximumCallsPerCallGroup = 1
    providerConfiguration.maximumCallGroups = 3
    providerConfiguration.supportedHandleTypes = [.phoneNumber]
    return providerConfiguration
}
Run Code Online (Sandbox Code Playgroud)

我已实施:

providerDidReset, 
CXStartCallAction, 
CXAnswerCallAction, 
CXEndCallAction, 
CXSetHeldCallAction, 
CXSetMutedCallAction, 
timedOutPerforming action, 
didActivate audioSession, 
didDeactivate audioSession.
Run Code Online (Sandbox Code Playgroud)

在我的app委托中,我有检查useractivity的功能.我把断点在所有的功能,但没有被调用显示的话蜂窝(GSM)调用视图前.

我用Google搜索但无法找到解决方案.据我所知,callkit工作正常.

ios swift callkit

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

Node PDFKit pipe to multiple targets

I'm having a problem, when I have to pipe() the created document to multiple targets, in my case to a HTTP response and to an email attachment using node-mailer. After the first use in an attachment to an email, nothing gets piped to a response (when calling it from the client, the PDF has 0 bytes).

Response controller:

const doc = await createPdf(course.name, lastRecordDate, ctx);   

// Send a notificiation email with attachment
if (query.hasOwnProperty('sendEmail') && query.sendEmail === 'true') { …
Run Code Online (Sandbox Code Playgroud)

pdf node.js nodemailer node-pdfkit node-streams

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

WiX 将 ExePackage 添加到产品以安装 vcredist

我想将 VC++ Redistributable 2013 添加到现有的工作 WiX 项目中。该项目由一个带有一个<Product>元素的主文件组成,其中包含一个<Feature>和一个<InstallExecuteSequence>元素以及其他一些元素。

我发现您可以使用<ExePackage>fromBurn来安装.exe文件(在我的例子中是可再发行文件)。我形成了一个片段,如下所示(在此处的帮助下):

<Fragment>
    <PackageGroup Id="VC13RedistX86">
      <ExePackage
        Cache="no"
        Compressed="yes"
        PerMachine="yes"
        Permanent="yes"
        Vital="yes"
        Name="Resources\vcredist_x86.exe"
        SourceFile="Resources\vcredist_x86.exe"
        InstallCommand="/install /quiet /norestart">

        <!-- -->
        <ExitCode Value="3010" Behavior="forceReboot"/>
        <!-- Ignore "Newer version installed" error -->
        <ExitCode Value="1638" Behavior="success"/>
      </ExePackage>
    </PackageGroup>
</Fragment> 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法将其纳入我现有的 WiX 产品中?如果没有办法,如何将原始安装程序和<ExePackage>

windows-installer wix wix3.5 vcredist

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